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,以便我们可以访问用户。