若依框架免token访问
在若依框架的简单使用中,已经简单介绍了一下SecurityUtils这个类的作用,并且简单的阐述了一下其中方法的使用。
介绍
近段时间有个项目要求没有任何登录就能够访问,而若依框架本身对于每一个接口都会进行token的判断,以此来获取当前用户信息以及是否有权限访问。这个切片的控制实际上由Security机制来控制的。
这个中间的token判断、ip判断、权限判断等等,都可以在SecurityConfig的configure方法中来配置,这个方法原型如下。
1 | /** |
可以看到其中有很多配置选项,具体可以自己查看一下。
我们如果不需要token就能够对接口进行直接的访问,根据上面的内容,我们可以把configure改成如下。
1 |
|
其他的一些配置要求,也可以一起来看一下。
HttpSecurity 配置方法详解
在使用 Spring Security 时,HttpSecurity 是一个核心类,用于配置基于 HTTP 请求的安全策略。通过 HttpSecurity,我们可以灵活地定义哪些请求需要进行身份验证、哪些请求需要特定的角色或权限,以及如何处理各种安全相关的细节。
常见配置方法
1 | http.authorizeRequests() |
anyRequest
描述:匹配所有请求路径。
示例:
1
.anyRequest().authenticated()
说明:如果没有其他更具体的匹配规则,所有请求都将应用此规则。
access
描述:SpringEl 表达式结果为
true时可以访问。示例:
1
.antMatchers("/api/**").access("hasRole('ADMIN') or hasRole('USER')")
说明:可以使用复杂的 SpringEl 表达式来定义访问规则。
anonymous
描述:匿名可以访问。
示例:
1
.antMatchers("/guest/**").anonymous()
说明:允许未登录的用户访问指定路径。
denyAll
描述:用户不能访问。
示例:
1
.antMatchers("/secure/**").denyAll()
说明:完全禁止访问指定路径。
fullyAuthenticated
描述:用户完全认证可以访问(非 remember-me 下自动登录)。
示例:
1
.antMatchers("/admin/**").fullyAuthenticated()
说明:只有通过完整认证的用户(非 remember-me 登录)可以访问。
hasAnyAuthority
描述:如果有参数,参数表示权限,则其中任何一个权限可以访问。
示例:
1
.antMatchers("/api/**").hasAnyAuthority("ROLE_ADMIN", "ROLE_USER")
说明:用户拥有任何一个指定权限即可访问。
hasAnyRole
描述:如果有参数,参数表示角色,则其中任何一个角色可以访问。
示例:
1
.antMatchers("/api/**").hasAnyRole("ADMIN", "USER")
说明:用户拥有任何一个指定角色即可访问。
hasAuthority
描述:如果有参数,参数表示权限,则其权限可以访问。
示例:
1
.antMatchers("/api/admin/**").hasAuthority("ROLE_ADMIN")
说明:用户必须拥有指定权限才能访问。
hasIpAddress
描述:如果有参数,参数表示 IP 地址,如果用户 IP 和参数匹配,则可以访问。
示例:
1
.antMatchers("/api/**").hasIpAddress("192.168.1.1")
说明:只有来自指定 IP 地址的用户可以访问。
hasRole
描述:如果有参数,参数表示角色,则其角色可以访问。
示例:
1
.antMatchers("/api/admin/**").hasRole("ADMIN")
说明:用户必须拥有指定角色才能访问。
permitAll
描述:用户可以任意访问。
示例:
1
.antMatchers("/public/**").permitAll()
说明:允许所有用户(包括未登录用户)访问指定路径。
rememberMe
描述:允许通过 remember-me 登录的用户访问。
示例:
1
.antMatchers("/api/user/**").rememberMe()
说明:允许通过 remember-me 功能自动登录的用户访问。
authenticated
描述:用户登录后可访问。
示例:
1
.antMatchers("/api/**").authenticated()
说明:用户必须登录后才能访问。
其他配置要求
除了上述常见的配置方法,HttpSecurity 还提供了许多其他配置选项,用于处理各种安全相关的细节。以下是一些常见的配置要求和示例:
登录和注销
登录配置:
1
2
3
4
5http
.formLogin()
.loginPage("/login")
.defaultSuccessUrl("/home", true)
.permitAll();注销配置:
1
2
3
4
5http
.logout()
.logoutUrl("/logout")
.logoutSuccessUrl("/login?logout")
.permitAll();
CSRF 保护
- 启用 CSRF 保护:
1 | http |
禁用 CSRF 保护:
1
2
3http
.csrf()
.disable();
CORS 配置
启用 CORS:
1
2
3
4
5http
.cors()
.and()
.csrf()
.disable();
异常处理
- 自定义异常处理:
1 | http |
安全上下文
配置安全上下文:
1
2
3http
.securityContext()
.securityContextRepository(new CustomSecurityContextRepository());
总结
通过 HttpSecurity,我们可以灵活地配置 Spring Security 的各种安全策略。从简单的访问控制到复杂的异常处理,HttpSecurity 提供了丰富的配置选项,满足不同项目的需求。更多详细信息可以参考 Spring Security 官方文档。

- 标题: 若依框架免token访问
- 作者: Sabthever
- 创建于 : 2025-06-03 16:02:06
- 更新于 : 2025-11-06 10:17:33
- 链接: https://sabthever.cn/2025/06/03/technology/java/若依框架免token访问/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。