springboot整合shiro不拦截某个请求
时间: 2023-09-06 16:03:32 浏览: 152
SpringBoot整合Shiro+JWT
5星 · 资源好评率100%
在Spring Boot中,可以通过整合Shiro来实现对请求的拦截和权限控制。如果不希望Shiro拦截某个请求,可以通过配置Shiro的过滤器链来实现。
首先,在Spring Boot的配置类中,需要注入一个FilterRegistrationBean对象来配置Shiro的过滤器链。然后,通过调用FilterRegistrationBean的addInitParameter方法,设置Shiro过滤器的init参数。
在设置Shiro过滤器的init参数时,可以通过使用Shiro内置的过滤器来达到不拦截某个请求的目的。其中,"anon"代表不需要认证即可访问,"authc"代表需要认证才能访问。
示例代码如下:
@Configuration
public class ShiroConfig {
@Bean
public FilterRegistrationBean<DelegatingFilterProxy> shiroFilterRegistration() {
FilterRegistrationBean<DelegatingFilterProxy> registration = new FilterRegistrationBean<>();
registration.setFilter(new DelegatingFilterProxy("shiroFilter"));
Map<String, String> initParameters = new LinkedHashMap<>();
// 不拦截某个请求
initParameters.put("anon", "/path/to/skip");
// 其他需要认证的请求
initParameters.put("authc", "/path/to/authenticate");
registration.setInitParameters(initParameters);
registration.setOrder(1);
registration.addUrlPatterns("/*");
return registration;
}
// 其他Shiro配置省略...
}
在上述代码中,通过设置initParameters来指定需要不拦截的请求与需要认证的请求。其中,"/path/to/skip"代表不需要进行认证和授权的请求路径。
通过以上配置,可以实现Spring Boot与Shiro的整合,并使得Shiro不拦截某个特定的请求。
阅读全文