準備工作
SpringBoot與SpringSecurity的整合十分友善,隻要導入依賴即可,導入後就會自動保護所有的Controller
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
賬号密碼的設定方式
不手動設定使用者名密碼
以下面的Controller為例
@RestController
@RequestMapping("/user")
public class UserController {
@GetMapping("/1")
public String test(){
return "hello SpringSecurity";
}
通路端口會自動跳轉到login頁面
不手動的設定得情況下預設使用者名是user而密碼檢視控制台,每次啟動都會随機生成
在配置檔案中設定
在application.yml中也可以對賬号密碼進行手動設定
spring:
security:
user:
name: admin
password: admin
在代碼中設定
在config中寫一個配置類如下,這裡的設定會覆寫掉配置檔案中的設定
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Bean
PasswordEncoder passwordEncoder(){
//不加密方式傳回
return NoOpPasswordEncoder.getInstance();
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
.withUser("admin")
.password("12345")
.roles("admin");//後面可以跟.and()來配置多個,這裡的配置會覆寫掉配置檔案中的
}
}