java configure_java – ‘configure’和’configureGlobal’方法有什么区别?

我正在使用 Spring Security配置并发现,配置内存中身份验证的最常用方法是使用configureGlobal()方法:

@Configuration

@EnableWebMvcSecurity

public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

@Autowired

public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception{

auth

.inMemoryAuthentication()

.withUser("user").password("userPwd").roles("USER");

}

}

但是有另一种方法,它使用不太广泛,覆盖WebSecurityConfigurerAdapter的configure()方法:

@Configuration

@EnableWebMvcSecurity

public class SecurityConfig extends WebSecurityConfigurerAdapter {

@Override

protected void configure(AuthenticationManagerBuilder auth) throws Exception {

auth

.inMemoryAuthentication(

.withUser("user").password("userPwd").roles("USER");

}

}

我只是想知道,它们之间有什么区别,使用configureGlobal()方法的用途是什么呢?

最佳答案 正如 spring security doc所说:

The name of the configureGlobal method is not important. However, it

is important to only configure AuthenticationManagerBuilder in a class

annotated with either @EnableWebSecurity, @EnableGlobalMethodSecurity,

or @EnableGlobalAuthentication. Doing otherwise has unpredictable

results.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Security 是一个基于 Spring 框架的安全框架,它提供了一系列的安全服务,例如认证(Authentication)、授权(Authorization)、攻击防护等。通过 Spring Security,我们可以轻松地实现对应用程序的身份验证和授权管理。 在 Java 项目中使用 Spring Security,需要在 pom.xml 文件中添加相应依赖,例如: ```xml <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-web</artifactId> <version>5.4.2</version> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-config</artifactId> <version>5.4.2</version> </dependency> ``` 配置 Spring Security 的方式有多种,其中最常用的是 Java 配置方式。我们可以创建一个继承自 WebSecurityConfigurerAdapter 的配置类,并重写其中的一些方法来配置 Spring Security。 例如,以下代码展示了如何通过 Java 配置方式启用 HTTP Basic 认证: ```java @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .anyRequest().authenticated() .and() .httpBasic(); } @Autowired public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { auth.inMemoryAuthentication() .withUser("user").password("{noop}password").roles("USER"); } } ``` 上述代码中,configure 方法用于配置 HTTP 安全策略,这里的策略是要求所有请求都需要认证;configureGlobal 方法用于配置认证管理器,这里使用了一个基于内存的认证管理器,并添加了一个用户名为 user,密码为 password 的用户。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值