cas与shrio整体认识及cas和shrio区别分工

转载自:https://blog.csdn.net/y666666y/article/details/84835779

cas客户端服务

cas服务端提供服务,cas客户端:通过客户端程序集成的cas客户端和cas服务端交互,cas之所以要抽出一个服务端,是为了把

公用的session,cookie都放在服务端,一些验证指令通过cas客户端--》cas服务端--》各客户端的权限管理插件(如:shrio)

shrio:

1,把用户权限信息放在shrio的securitymanager管理器中

2,根据需要增加相应的认证,角色过滤器

3,认证的发起,

1调用shrio自有的接口地址,

2,用java代码编写:subject里面有登陆功能,有登陆后的session(在重写的认证接口设置),有用户名getPriciple();

cas和shrio区别分工

cas只做用户密码认证放行(集成在程序的客户端会调用cas服务进行验证)

shrio既可以做密码认证放行,也可以做权限判断

当二者结合的时候,可以分工密码认证cas来,权限判断shrio来

<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">

<property name="realm" ref="casRealm" />

<property name="subjectFactory" ref="casSubjectFactory" />

<!-- <property name="sessionManager" ref="sessionManager" /> -->

<!-- <property name="cacheManager" ref="shiroEhcacheManager" /> -->

</bean>

<bean id="casFilter" class="org.apache.shiro.cas.CasFilter">//cas拦截器----》密码认证

<property name="failureUrl"

value="http://localhost:8081/web/resources/failure.html" />

</bean>

<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">

<property name="securityManager" ref="securityManager" />//里面包含cas的本拦截服务设置----》shrio密码认证(集成cas时配置方式不同)

<!-- <property name="loginUrl"

value="http://localhost:8080/cas/login?service=http://localhost:8081/web/cas" /> -->

<property name="loginUrl"

value="http://localhost:8080/cas/login?a=2&service=http://localhost:8081/web/cas" >

</property>

<property name="successUrl"

value="http://localhost:8081/web/siteindex.do" />

<property name="filters">

<map>

<!-- <entry key="authc" value-ref="formAuthenticationFilter" /> -->

<entry key="cas" value-ref="casFilter" /> //shrio中集成本服务cas的拦截器

<entry key="logout" value-ref="logoutFilter" />

<entry key="osLogin" value-ref="osLogin" />

<entry key="oiLogin" value-ref="oiLogin" />

<entry key="csLogin" value-ref="csLogin" />

</map>

</property>

<!-- 重要:必须加上/cas = cas来告诉/cas用casFilter来处理 -->

<!-- 重要:logout为登出filter /myaccount/getFirmCenter =csLogin-->

<property name="filterChainDefinitions">---》权限过滤(动态的时候配置不同)

<value>

/information/news/getNewsInfoById==anon

/information/news/getInfoNewsData==anon

</value>

</property>

</bean>

<bean id="casRealm" class="org.apache.shiro.cas.CasRealm">//本服务用的cas拦截器

<property name="defaultRoles" value="ROLE_USER" />

<!-- 重要:这个是用来获取ticket的casServerURL的前缀,所以不能有login -->

<property name="casServerUrlPrefix" value="http://localhost:8080/cas/" />

<!--客户端的回调地址设置,必须和上面的shiro-cas过滤器拦截的地址一致 -->

<property name="casService" value="http://localhost:8081/web/cas" />

</bean>

<bean id="casSubjectFactory" class="org.apache.shiro.cas.CasSubjectFactory" />//把shrio的subject封装称cas的subject

<bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring.LifecycleBeanPostProcessor" />

————————————————

版权声明:本文为CSDN博主「yuhui66666688gfbfdy」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/y666666y/article/details/84835779

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值