AddHandler.py 文件源码

python
阅读 18 收藏 0 点赞 0 评论 0

项目:strongMan 作者: strongswan 项目源码 文件源码
def handle(self):
        '''
        Handles a Add Container request. Adds the specific container to the database
        :return: a rendered site specific for the request
        '''
        self.form = AddForm(self.request.POST, self.request.FILES)
        if not self.form.is_valid():
            messages.add_message(self.request, messages.ERROR,
                                 'No valid container detected. Maybe your container needs a password?')
            return self._render_upload_page(form=self.form)

        try:
            result = UserCertificateManager.add_keycontainer(self.form._cert_bytes(),
                                                             self.form._read_password())
            for e in result.exceptions:
                messages.add_message(self.request, messages.WARNING, str(e))
            if not result.success:
                return self._render_upload_page()

            if result.certificate is not None and result.privatekey is None:
                result.privatekey = result.certificate.private_key
            if result.certificate is None and result.privatekey is not None:
                result.certificate = result.privatekey.certificates.all()[0]

            return self._render_added_page(result)

        except (ValueError, TypeError, AsymmetricKeyError, OSError) as e:
            messages.add_message(self.request, messages.ERROR,
                                 "Error reading file. Maybe your file is corrupt?")
            return self._render_upload_page(form=self.form)
        except Exception as e:
            messages.add_message(self.request, messages.ERROR,
                                 "Internal error: " + str(e))
            return self._render_upload_page(form=self.form)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号