Springboot配置Filter
# web.xml
<!-- 默认情况下,此listener会自动查找 WEB-INF/shiro.ini文件 进行shiro配置 -->
<listener>
<listener-class>org.apache.shiro.web.env.EnvironmentLoaderListener</listener-class>
</listener>
<!-- 此filter会将所有的请求过滤 -->
<filter>
<filter-name>ShiroFilter</filter-name>
<filter-class>org.apache.shiro.web.servlet.ShiroFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>ShiroFilter</filter-name>
<url-pattern>/*</url-pattern>
<!-- 过滤所有可能的请求类型 -->
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>ERROR</dispatcher>
</filter-mapping>
# ShiroConfig.java
@Configuration
public class ShiroConfig {
// 如果有多个Filter,可以写多个FilterRegistrationBean
@Bean
public FilterRegistrationBean delegatingFilterProxy() {
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
filterRegistrationBean.setFilter(new DelegatingFilterProxy());
filterRegistrationBean.addUrlPatterns("shiroFilter");
filterRegistrationBean.addUrlPatterns("/*");
return filterRegistrationBean;
}
}
# Realm
realms充当shiro和应用程序安全数据之间的“桥梁”或“连接器”。当需要与安全相关数据(如用户)进行实际交互以执行身份验证(登录)和授权(访问控制)时,shiro会从为应用程序配置的一个或多个Realm 中查找其中的许多内容
从这个意义上说,Realm 本质上是一个特定于安全性的 dao:它 封装数据源的连接细节,并根据需要将相关数据提供给shiro。配置shiro时,必须指定 至少一个Realm 用于身份验证或授权
我们需要配置一个 Realm,以便我们可以访问用户。