Spring Security拦截web的账号密码 代码
时间: 2024-12-15 14:12:12 浏览: 4
详解springSecurity之java配置篇
Spring Security是一个强大的安全框架,用于保护Web应用程序的用户认证和授权。当你想要拦截用户的账号密码输入以验证其身份时,通常会在Web过滤器链(Filter Chain)中配置`AuthenticationFilter`。以下是一个简单的示例代码片段:
```java
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
// 使用UsernamePasswordAuthenticationToken作为默认的身份验证模式
auth.inMemoryAuthentication()
.withUser("username") // 用户名
.password(passwordEncoder().encode("password")) // 加密后的密码
.roles("USER"); // 角色
}
// 过滤器链配置,拦截HTTP请求并验证凭证
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
// 设置登录页面
.antMatchers("/login").permitAll()
// 其他需要权限的URL
.anyRequest().authenticated() // 所有其他请求都需要认证
.and()
// 添加基本认证过滤器
.formLogin()
.loginPage("/login")
.defaultSuccessUrl("/") // 登录成功后跳转到首页
.failureUrl("/login?error"); // 登录失败后跳转错误页
}
}
```
在这个例子中,当用户访问未授权的资源时,他们会被重定向到"/login"页面,并尝试输入用户名和密码。如果验证通过,他们将被自动重定向回应用的主界面;否则显示错误信息。
阅读全文