shiro配置不拦截的请求
时间: 2023-08-09 16:06:07 浏览: 118
Shiro 可以通过配置 `anon` 来实现不拦截的请求。具体来说,可以在 Shiro 配置文件中加入如下配置:
```xml
<shiro>
<filterChainDefinitions>
<!-- 不拦截的请求 -->
<value>/static/** = anon</value>
<value>/login = anon</value>
<!-- 其他请求则使用默认的拦截器链 -->
<value>/** = authc</value>
</filterChainDefinitions>
</shiro>
```
以上配置表示 `/static/**` 和 `/login` 请求不会被拦截,其他请求则使用默认的 `authc` 拦截器链。其中 `anon` 表示不需要认证和授权即可访问。
相关问题
springboot整合shiro不拦截某个请求
在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不拦截某个特定的请求。
shiro设置不拦截的页面
在 Shiro 中,可以通过配置 `anon` 来设置不需要进行身份验证和权限检查的页面或请求。具体来说,可以在 Shiro 的配置文件中添加如下配置:
```xml
<bean id="shiroFilterFactoryBean" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
<!-- ... -->
<property name="filterChainDefinitions">
<value>
/public/** = anon
/login = anon
/logout = anon
/** = authc
</value>
</property>
</bean>
```
上述配置表示:
- 访问以 `/public/` 开头的 URL 不需要进行身份验证和权限检查。
- 访问 `/login` 和 `/logout` URL 也不需要进行身份验证和权限检查。
- 其他 URL 都需要进行身份验证,即需要先登录才能访问。
在上述配置中,`anon` 表示不需要进行身份验证和权限检查。