springboot访问请求放行_SpringBoot2系列教程88-SpringBoot整合SpringSecurity实现认证拦截...
时间: 2023-08-23 09:28:57 浏览: 102
可以通过在Spring Security的配置类中添加WebSecurityConfigurerAdapter来实现对请求的放行。
示例代码如下:
```java
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
// 放行某些请求
http.authorizeRequests()
.antMatchers("/api/public/**").permitAll()
.anyRequest().authenticated();
// 其他配置
// ...
}
// 其他配置
// ...
}
```
以上代码中,`antMatchers("/api/public/**").permitAll()`表示对以`/api/public/`开头的请求放行,其他请求需要进行身份认证。可以根据实际情况进行配置。
相关问题
springboot整合springsecurity认证流程
好的,下面是SpringBoot整合SpringSecurity的认证流程:
1. 引入依赖
在 `pom.xml` 文件中添加 Spring Security 相关的依赖:
```
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
```
2. 配置安全规则
在 `application.yml` 或 `application.properties` 文件中配置安全规则:
```
spring:
security:
user:
name: admin
password: admin
# 需要放行的请求路径
ignored: /css/**,/js/**,/images/**
```
3. 创建安全配置类
创建一个继承 `WebSecurityConfigurerAdapter` 的安全配置类,并重写 `configure(HttpSecurity http)` 方法,配置安全规则。
```
@Configuration
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
// 配置安全规则
http.authorizeRequests()
.antMatchers("/admin/**").hasRole("ADMIN")
.antMatchers("/user/**").hasAnyRole("ADMIN", "USER")
.anyRequest().authenticated()
.and()
.formLogin().loginPage("/login").permitAll()
.and()
.logout().permitAll();
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
// 配置用户信息
auth.inMemoryAuthentication()
.withUser("admin").password("{noop}admin").roles("ADMIN")
.and()
.withUser("user").password("{noop}user").roles("USER");
}
}
```
在上面的代码中,`configure(HttpSecurity http)` 方法配置了三个安全规则:
- `/admin/**` 路径需要 `ADMIN` 角色才能访问
- `/user/**` 路径需要 `ADMIN` 或 `USER` 角色才能访问
- 其他路径需要认证后才能访问
`configureGlobal(AuthenticationManagerBuilder auth)` 方法配置了两个用户 `admin` 和 `user`,并分别赋予了 `ADMIN` 和 `USER` 角色。
4. 启动应用程序
现在可以启动应用程序,访问 `/login` 路径进行登录,登录成功后就可以访问需要认证的路径。
springboot拦截器放行
在Springboot中,我们可以通过配置拦截器来实现对请求的拦截和放行。通常情况下,我们会在拦截器中编写一些逻辑来判断是否需要放行请求。
在你提供的引用中,可以看到配置拦截器用来拦截不经过登录页面就放行的页面的需求。为了实现这个需求,你可以通过在拦截器中编写逻辑,判断当前请求是否是登录页面所需的静态资源,如果是的话,就允许请求继续往下执行。
关于拦截器放行的具体实现,一种常见的做法是在拦截器的preHandle()方法中进行判断。在这个方法中,我们可以通过检查请求的URL或者其他一些条件来决定是否放行请求。如果判断为需要拦截且未登录,可以通过request.getRequestDispatcher("/")将请求重定向到登录页,并设置相应的提示信息,然后返回false表示拦截请求。否则,返回true表示放行请求。
以上是一种处理拦截器放行的方式,你可以根据具体情况进行适当的修改和调整。同时,你还可以参考引用中提供的Springboot引入拦截器并放行Swagger的代码示例,来更好地理解和实践拦截器放行的过程。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [springboot\springMVC配置拦截器以及放行资源](https://blog.csdn.net/weixin_44200024/article/details/121289570)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* [Springboot引入拦截器并放行swagger代码实例](https://download.csdn.net/download/weixin_38675506/12745293)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文