Springboot+shiro+cas单点登录环境搭建
最近这段时间忙好久没有写博客了,现在给大家上点干货,废话不多说了,
1.首先在pom.xml中添加依赖
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>org.jasig.cas.client</groupId>
<artifactId>cas-client-core</artifactId>
<version>3.3.3</version>
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-core</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-ehcache</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-cas</artifactId>
<version>1.3.2</version>
<!--Spring Boot 内嵌Tomcat不能有servlet依赖,需要将其排除掉-->
<exclusions>
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</exclusion>
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
</dependency>
<dependency>
<groupId>org.opensaml</groupId>
<artifactId>opensaml</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>org.apache.santuario</groupId>
<artifactId>xmlsec</artifactId>
<version>1.4.3</version>
<!--Spring Boot 内嵌Tomcat不能有servlet依赖,需要将其排除掉-->
<exclusions>
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</exclusion>
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</exclusion>
</exclusions>
</dependency>
2.在application.properties中配置
#cas server地址,外网访问需用外网IP,可以写域名
cas.server-url=http://192.168.1.56:8080/cas
#当前项目地址,外网访问需用外网IP
cas.service=http://192.168.1.56
#登录成功地址
cas.service.loginSuccessUrl = "/index";
#权限认证失败跳转地址
cas.service.unauthorizedUrl = "/error.html";
3.接写下就是写类的,Springboot主要是用注解,创建 MyShiroCasRealm
package cnlink.sdwan.common.shiro.cas;
import cnlink.sdwan.dao.UserMapper;
import cnlink.sdwan.model.User;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.AuthenticationInfo;
import org.apache.shiro.authc.AuthenticationToken;
import org.apache.shiro.authz.AuthorizationInfo;
import org.apache.shiro.authz