CAS之单点登录client逻辑详解

关于单点登录SSO的原理,我在之前的文章中已经有详细的讲解,大家可以去看看历史文章。今天这里主要是说下具体的实现逻辑,这里是基于java的,使用到了cas-client这个库。

Cas Client主要有四个核心过滤器:

  • 1、AuthenticationFilter

  • 2、TicketValidationFilter

  • 3、HttpServletRequestWrapperFilter

  • 4、AssertionThreadLocalFilter

下面会逐一的详细说明

AuthenticationFilter

AuthenticationFilter用来拦截所有的请求,用以判断用户是否需要通过Cas Server进行认证,如果需要则将跳转到Cas Server的登录页面。如果不需要进行登录认证,则请求会继续往下执行。AuthenticationFilter有两个用户必须指定的参数:

  • 1、casServerLoginUrl: Cas Server登录地址的,

  • 2、serverName或service: 指定认证成功后需要跳转地址的。service和serverName只需要指定一个就可以了。当两者都指定了,参数service将具有更高的优先级,即将以service指定的参数值为准。service和serverName的区别在于service指定的是一个确定的URL,认证成功后就会确切的跳转到service指定的URL;而serverName则是用来指定主机名,其格式为{protocol}:{hostName}:{port},如:https://localhost:8443,当指定的是serverName时,AuthenticationFilter将会把它附加上当前请求的URI,以及对应的查询参数来构造一个确定的URL,如指定serverName为“http://localhost”,而当前请求的URI为“/app”,查询参数为“a=b&b=c”,则对应认证成功后的跳转地址将为“http://localhost/app?a=b&b=c”。

除了上述必须指定的参数外,AuthenticationFilter还可以指定如下可选参数:

  • 1、renew:当指定renew为true时,在请Cas Server时将带上参数“renew=true”,默认为false。

  • 2、gateway:指定gateway为true时,在请求Cas Server时将带上参数“gateway=true”,默认为false。

  • 3、artifactParameterName:指定ticket对应的请求参数名称,默认为ticket。

  • 4、serviceParameterName:指定service对应的请求参数名称,默认为service。

1、配置文件

一般来说,我们会像下面这样配置相关信息,web.xml文件配置如下:

<context-param>
  <param-name>serverName</param-name>
  <param-value>${sso.address.client}</param-value>
</context-param>
<context-param>
  <param-name>casServerUrlPrefix</param-name>
  <param-value>${sso.address.server}/unisso</param-value>
</context-param>
<context-param>
  <param-name>casServerLoginUrl</param-name>
  <param-value>${sso.address.server}/unisso/login</param-value>
</context-param>
  
<filter>
  <filter-name>ssoAuth
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值