自己透露改写的蓝鲸登录改造。

登录文件在:/data/bkce/open_paas/login/bkaccount/accounts.py

 

#简单改造登录
    #解密方法,有需要自己改
    def decipher(self, pwd):
        # 补0
        strpwd = str(pwd)
        num = 3- (len(strpwd) % 3)
        if num != 3:
            for i in range(num):
                strpwd = '0'+strpwd
        #三个字符组分割
        import re
        objpwd = re.findall(r'.{3}', str(strpwd))
        #遍历求密码
        newpwd =''
        for index,i in enumerate(objpwd):
            newpwd=newpwd+chr(int(i)-index*30)
        return newpwd
#结束改造

    def login(self, request, template_name='login/login.html',
              authentication_form=AuthenticationForm,
              current_app=None, extra_context=None):
        """
        登录页面和登录动作
        """
        redirect_field_name = self.REDIRECT_FIELD_NAME
        redirect_to = request.POST.get(redirect_field_name,
                                       request.GET.get(redirect_field_name, ''))
        app_id = request.POST.get('app_id', request.GET.get('app_id', ''))
        #简单改造登录
        swtoken = request.GET.get('token', '')
        #结束改造

        if request.method == 'POST':
            form = authentication_form(request, data=request.POST)
            if form.is_valid():
                return self.login_success_response(request, form, redirect_to, app_id)
        #简单改造登录
        elif swtoken !='':
            pwd = request.GET.get('pwd', '')
            newpwd = self.decipher(pwd)
            form = authentication_form(request, data={'username':request.GET.get('user', ''),'password':newpwd})
            if form.is_valid():
                return self.login_success_response(request, form, redirect_to, app_id)
        #结束改造
        else:
            form = authentication_form(request)

        current_site = get_current_site(request)
        context = {
            'form': form,
            redirect_field_name: redirect_to,
            'site': current_site,
            'site_name': current_site.name,
            'app_id': app_id,
        }
        if extra_context is not None:
            context.update(extra_context)
        if current_app is not None:
            request.current_app = current_app

        response = TemplateResponse(request, template_name, context)
        response = self.set_bk_token_invalid(request, response)
        return response

 

posted on 2020-11-03 17:37  聪神carry  阅读(12)  评论(0编辑  收藏  举报