91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何進行NoAuthMiddlewareBase及NoAuthMiddleware解析

發布時間:2021-12-28 15:46:45 來源:億速云 閱讀:131 作者:柒染 欄目:云計算

這期內容當中小編將會給大家帶來有關如何進行NoAuthMiddlewareBase及NoAuthMiddleware解析,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

NoAuthMiddlewareBase解析

class NoAuthMiddlewareBase(base_wsgi.Middleware):"""如果請求頭里沒有指定對應的請求令牌,則返回一個偽造的令牌."""    def base_call(self, req, project_id_in_path, always_admin=True):if 'X-Auth-Token' not in req.headers:
            user_id = req.headers.get('X-Auth-User', 'admin')#設置默認的用戶ID
            project_id = req.headers.get('X-Auth-Project-Id', 'admin')#設置默認的項目IDif project_id_in_path:
                os_url = '/'.join([req.url.rstrip('/'), project_id])else:
                os_url = req.url.rstrip('/')
            res = webob.Response()# NOTE(vish): This is expecting and returning Auth(1.1), whereas            #             keystone uses 2.0 auth.  We should probably allow            #             2.0 auth here as well.            res.headers['X-Auth-Token'] = '%s:%s' % (user_id, project_id)#偽造token
            res.headers['X-Server-Management-Url'] = os_url #設置url
            res.content_type = 'text/plain' #設置content-type            res.status = '204'            return res

        token = req.headers['X-Auth-Token']
        user_id, _sep, project_id = token.partition(':')
        project_id = project_id or user_id
        remote_address = getattr(req, 'remote_address', '127.0.0.1')if CONF.api.use_forwarded_for:
            remote_address = req.headers.get('X-Forwarded-For', remote_address)
        is_admin = always_admin or (user_id == 'admin')
        ctx = context.RequestContext(user_id,
                                     project_id,                                     is_admin=is_admin,                                     remote_address=remote_address)#封裝請求上下文

        req.environ['nova.context'] = ctxreturn self.application

NoAuthMiddleware解析

class NoAuthMiddleware(NoAuthMiddlewareBase):
#繼承父類    
@webob.dec.wsgify(RequestClass=wsgi.Request)def __call__(self, req):
return self.base_call(req, True, always_admin=False)
#調用父類的具體實現

上述就是小編為大家分享的如何進行NoAuthMiddlewareBase及NoAuthMiddleware解析了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

腾冲县| 徐州市| 龙里县| 高要市| 多伦县| 滦平县| 黄龙县| 成都市| 隆昌县| 濉溪县| 高邑县| 乐至县| 黑山县| 曲松县| 仪征市| 岗巴县| 西青区| 信丰县| 韶山市| 平昌县| 承德县| 阜平县| 昌平区| 亳州市| 嘉禾县| 荣昌县| 县级市| 赣榆县| 桐城市| 南皮县| 关岭| 石渠县| 简阳市| 曲松县| 当阳市| 乐安县| 耿马| 汶川县| 饶阳县| 通江县| 科尔|