以在浏览器中请求https://bigdata-master:8443/gateway/hdp_ui/webhdfs/v1/tmp?op=LISTSTATUS为例
- SSOCookieProvider负责从http请求的cookie中读取hadoop-jwt,如果cookie中不存在hadoop-jwt,会重定向http请求至sso.authentication.provider.url(即https://bigdata-master:8443/gateway/knoxsso/api/v1/websso,将匹配到knoxsso-topology中的KNOXSSO服务)
- 执行knoxsso-topology的shiro认证,如果http请求中没有提供有效的认证信息(例如Basic Auth的username/password),会将浏览器也重定向页面至redirectToUrl(即gateway/knoxsso/knoxauth/login.html)
- 输入username和password将使用shiro配置的ldap服务进行认证,如果认证通过将在cookie中生成hadoop-jwt
- 将http请求重定向至最初请求的地址,此时cookie中已经存在hadoop-jwt,此后所有的操作不在需要认证