这篇文章主要介绍“Shiro整合CAS认证处理方法是什么”,在日常操作中,相信很多人在Shiro整合CAS认证处理方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Shiro整合CAS认证处理方法是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
2、具体内容
2.1、Shiro与CAS整合简介
Shiro一定是现在最为流行的权限认证管理框架,但是现在已经不再是最为传统的Shiro处理了,因为此时的处理牵扯到CAS实现认证的操作部分,所以对于Shiro而言,它依然需要实现认证与授权检测,但是这个时候的认证应该交由CAS完成。
在现实的开发过程之中,客户端是不可能直接访问CAS服务器的。
1、需要在本地的windows系统的JDK里面导入服务器端证书:
·前提:已经准确的配置了JAVA_HOME环境属性:
·服务器端证书的所在路径:D:/server.cer;
·认证授权库:E:/ProgramFiles/Java/jdk1.8.0_74/jre/lib/security/cacerts;
keytool-import-aliasserver-filed:/server.cer-keystore"%JAVA_HOME%/jre/lib/security/cacerts"-storepasschangeit
·列出全部的本地的密钥库:
keytool-list-keystore"%JAVA_HOME%/jre/lib/security/cacerts"-storepasschangeit
搜索一下是否有server(别名);2、需要修改cas的配置文件,让其支持http协议访问:
·修改文件:
vim/usr/local/tomcat/webapps/cas/WEB-INF/classes/services/HTTPSandIMAPS-10000001.json;
2、需要修改cas的配置文件,让其支持http协议访问:
·修改文件:vim/usr/local/tomcat/webapps/cas/WEB-INF/classes/services/HTTPSandIMAPS-10000001.json;
"serviceId":"^(http|https|imaps)://.*",
那么此时将支持http协议访问的路径。
2.2、实现CasRealm
1、如果要想在项目之中使用CAS作为整个认证处理,那么首先需要导入一个开发包:
·修改pom.xml文件追加shiro与cas整合的处理包:
2、修改数据库脚本,现在已经整合在一起了,那么当前应该使用的数据表需要包含有角色、权限等信息。
3、此时所有的查询内容都将交由CAS负责,而Shiro只是负责角色与权限数据的获取。
范例:定义一个MemberCasRealm程序类,需要继承CasRealm父类
此时发现对于使用的Realm只有用户认证部分发生了变化,而角色和权限的操作依然像之前那样直接通过业务层读取。
2.3、环境配置
1、当前的使用的数据库IP地址为:192.168.122.204,所以应该首先修改database.properties文件,修改MySQL路径:
db.driver=org.gjt.mm.mysql.Driver db.url=jdbc:mysql://192.168.122.204:3306/shirodb db.user=root db.password=mysqladmin db.maxPoolSize=1db.maxIdleTime=1db.minPoolSize=1db.initialPoolSize=1
2、修改当前的Realm使用类型(applicationContext.xml文件):
<beanid="memberRealm"class="cn.mldn.realm.MemberCasRealm">
6、所有的访问都以域名的方式出现的,所以还需要修改hosts文件,追加域名:
127.0.0.1shiro.com
·认证的访问路径:http://shiro.com/shirodemo/shiro-cas;
<%@taglibprefix="shiro"uri="http://shiro.apache.org/tags"%><h3><shiro:hasRolename="member">具有member角色shiro:hasRole></h3>
后台会出现角色和权限的信息查询提示信息。
到此,关于“Shiro整合CAS认证处理方法是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
原创文章,作者:1402239773,如若转载,请注明出处:https://blog.ytso.com/tech/opensource/231886.html