Apache Shiro 集成-Cas
来源:互联网 发布:linux 查看进程详情 编辑:程序博客网 时间:2024/05/21 16:56
Shiro集成CAS是在1.2版本里新增的功能。
Shiro-cas模块将应用作为CAS客户端与CAS SSO服务器一起保护web应用。
CAS协议的一个基本理解:
1. 如果你想访问一个被CAS客户端保护的应用,而你还没有进行认证。你讲被重定向到CAS服务端的登录页面。在应用中你需要配置CAS的登录url地址。
http://application.examples.com/protected/index.jsp → HTTP 302
→ https://server.cas.com/login?service=http://application.examples.com/shiro-cas
2. 当你填上登录名和密码在CAS服务端进行认证后,你就被重定向到一个带有服务端票据的应用URL。服务端票据是一次性使用的令牌,可在CAS服务端标识用户的唯一性(或用户属性)。
https://server.cas.com/login?service=http://application.examples.com/shiro-cas → HTTP 302
→ http://application.examples.com/shiro-cas?ticket=ST-4545454542121-cas
3. 应用去CAS服务端询问票据的有效性,CAS服务端响应经过认证的用户唯一标识。CAS客户端将页面转发到受保护的页面。
http://application.examples.com/shiro-cas?ticket=ST-4545454542121-cas → HTTP 302
→ http://application.examples.com/protected/index.jsp
如何配置shiro与CAS服务器工作?
在你的应用中添加shiro-cas Maven依赖
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-cas</artifactId>
<version>version</version>
</dependency>
在你的应用中添加服务端url,这个url被用来接收CAS服务端票据。
在Shiro配置中定义CasFilter:
[main]
casFilter = org.apache.shiro.cas.CasFilter
casFilter.failureUrl = /error.jsp
定义过滤器对应的url:
[urls]
/shiro-cas = casFilter
这样一来,当用户经过CAS服务端的有效票据认证后被重定向到应用的服务地址(/shiro-cas),这个过滤器接收服务端票据并创建一个可以被CasRealm使用的CasToken。
CasRealm使用被CasFilter创建的CasToken来验证用户的合法性。在你的shiro配置中添加CasRealm:
[main]
casRealm = org.apache.shiro.cas.CasRealm
casRealm.defaultRoles = ROLE_USER
#casRealm.defaultPermissions
#casRealm.roleAttributeNames
#casRealm.permissionAttributeNames
#casRealm.validationProtocol = SAML
casRealm.casServerUrlPrefix = https://server.cas.com/
casRealm.casService = http://application.examples.com/shiro-cas
casServerUrlPrefix是CAS服务端地址。
casService是应用服务地址,用来接收CAS服务端票据。
validationProcol值为SAML or CAS,默认是CAS。它依赖于CAS服务器的版本,SAML协议只能使用在CAS server version >= 3.1。
defaultRoles是认证通过后默认角色。
defaultPermissions是认证通过后默认权限。
roleAttributeNames是认证通过的用户的角色属性名称,用逗号分隔。
permissionAttributeNames是认证通过的用户的权限属性名称,用逗号分隔。
CAS服务端可以支持 ‘remember me’ 功能,这个信息通过SAML验证或CAS定制验证发布。你需要在Shiro配置中定义CasSubjectFactory:
[main]
casSubjectFactory = org.apache.shiro.cas.CasSubjectFactory
securityManager.subjectFactory = $casSubjectFactory
最后,为你的应用增加安全控制。定义需要保护的url地址和需要进行认证的CAS服务端地址:
[main]
roles.loginUrl = https://server.cas.com/login?service=http://application.examples.com/shiro-cas
[urls]
/protected/** = roles[ROLE_USER]
/** = anon
一个完整的配置例子:
[main]
casFilter = org.apache.shiro.cas.CasFilter
casFilter.failureUrl = /error.jsp
casRealm = org.apache.shiro.cas.CasRealm
casRealm.defaultRoles = ROLE_USER
casRealm.casServerUrlPrefix = https://server.cas.com/
casRealm.casService = http://application.examples.com/shiro-cas
casSubjectFactory = org.apache.shiro.cas.CasSubjectFactory
securityManager.subjectFactory = $casSubjectFactory
roles.loginUrl = https://server.cas.com/login?service=http://application.examples.com/shiro-cas
[urls]
/shiro-cas = casFilter
/protected/** = roles[ROLE_USER]
/** = anon
- Apache Shiro 集成-Cas
- Apache Shiro 集成-Cas
- Apache Shiro 集成-Cas
- Apache Shiro 集成-Cas
- shiro学习-shiro集成cas
- shiro cas集成
- shiro-cas集成实战
- shiro集成cas
- shiro 集成cas单点登录
- Apache Shiro 集成-spring
- Apache Shiro 集成-Ehcache
- Apache Shiro 集成-Guice
- SpringMVC+Apache Shiro集成
- Apache Shiro 集成-spring
- 在 Web 项目中应用 Apache Shiro 并集成 CAS 单点登录
- CAS和Shiro在spring中集成
- CAS和Shiro在spring中集成
- CAS和Shiro在spring中集成
- iOS 应用启动过程
- 快速排序
- Go实战--golang中文件以及文件夹路径相关操作
- 微笑
- 微信公众帐号开发教程04-消息及消息处理工具的封装
- Apache Shiro 集成-Cas
- 【JAVA】集合框架 学习笔记
- hdu3790 最短路径问题
- 导航栏前面的小图标如何设置?
- idea中terminal无法识别git命令行命令解决办法
- Linux 主机网络接入配置
- Head_First_Java之BeatBox.java
- 作业 二十七 三国志
- Break,Continue,Return 傻傻分不清楚