jsp实现登录验证 cas server + cas client 单点登录 原(3)

电脑杂谈  发布时间:2017-12-28 22:04:02  来源:网络整理

8:viewGenerateLoginSuccess这是CAS的认证成功页面。

/logout:(对应实现类org.jasig.cas.web.LogoutController)

处理逻辑:

1) removeCookie

2)在服务端删除TicketGrantingTicket对象(此对象封装了cookie的value值)

3)redirect到退出页面,有2种选择:

jsp实现登录注册验证_jsp实现登录验证_jsp注册页面代码

if(LogoutController的followServiceRedirects属性为true值,且url里的service参数非空){

redirect到sevice参数标识的url

}

else{

redirect到内置的casLogoutView(cas/WEB-INF/view/jsp/default/ui/casLogoutView.jsp),如果url里有url参数,则此url参数标识的链接会显示在casLogoutView页面上。

}

/serviceValidate:(对应实现类org.jasig.cas.web.ServiceValidateController)

处理逻辑:

如果service参数为空或ticket参数为空,则转发到failureView(/WEB-INF/view/jsp/default/protocol/2.0/casServiceValidationFailure.jsp)

验证ticket。以ticket为参数,去缓存里找ServiceTicketImpl对象,如果能找到,且没有过期,且ServiceTicketImpl对象对应的service属性和service参数对应,则验证通过,验证通过后,请求转发至casServiceSuccessView(cas/WEB-INF/view/jsp/default/protocol/2.0/casServiceValidationSuccess.jsp),验证不通过,则转发到failureView。

概念

Credentials用户提供的用于登录用的凭据信息,如用户名/密码、证书、IP地址、Cookie值等。jsp实现登录验证比如UsernamePasswordCredentials,封装的是用户名和密码。CAS进行认证的第一步,就是把从UI或request对象里取到的用户凭据封装成Credentials对象,然后交给认证管理器去认证。

AuthenticationHandler认证Handler,每种AuthenticationHandler只能处理一种Credentials,如AbstractUsernamePasswordAuthenticationHandler只负责处理UsernamePasswordCredentials。

Principal封装用户标识,比如SimplePrincipal,只是封装了用户名。认证成功后,credentialsToPrincipalResolvers负责由Credentials生成Principal对象。

CredentialsToPrincipalResolvers负责由Credentials生成Principal对象,每种CredentialsToPrincipalResolvers只处理一种Credentials,比如UsernamePasswordCredentialsToPrincipalResolver负责从UsernamePasswordCredentials中取出用户名,然后将其赋给生成的SimplePrincipal的ID属性。


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-56599-3.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...