springsecurity实例
时间: 2024-01-20 09:16:37 浏览: 61
spring security数据库表结构实例代码
以下是一个Spring Security的实例:
1. 首先,确保你的项目中已经添加了Spring Security的依赖。在pom.xml文件中添加以下依赖:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
```
2. 创建一个SecurityConfig类来配置Spring Security。在该类上添加@Configuration和@EnableWebSecurity注解,并继承WebSecurityConfigurerAdapter类。在configure方法中,可以配置认证和授权规则,如下所示:
```java
@Configuration
@EnableWebSecurity
public class SecurityConfig 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()
.and()
.logout()
.logoutUrl("/logout")
.logoutSuccessUrl("/login")
.and()
.csrf().disable();
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth
.inMemoryAuthentication()
.withUser("admin").password("{noop}admin123").roles("ADMIN")
.and()
.withUser("user").password("{noop}user123").roles("USER");
}
}
```
3. 在上述配置中,我们使用了内存中的用户进行认证。可以使用.withUser()方法添加用户,并使用.password()方法设置密码。roles()方法用于设置用户的角色。
4. 在上述配置中,我们定义了一些URL的访问规则。例如,/admin/**路径需要ADMIN角色才能访问,/user/**路径需要ADMIN或USER角色才能访问。其他路径需要进行认证才能访问。
5. 在上述配置中,我们还配置了登录和登出的URL。登录URL为/login,登出URL为/logout,并设置了登出成功后跳转的URL为/login。
6. 最后,我们禁用了CSRF保护,以便在开发环境中更容易进行测试。
阅读全文