반응형
pom.xml에 의존성 추가
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
컨트롤러
@Controller
public class SampleController {
@GetMapping("/")
public String index(Model model, Principal principal) {
if (principal == null) {
model.addAttribute("message", "Hello Spring Security");
} else {
model.addAttribute("message", "Hello " + principal.getName());
}
return "index";
}
@GetMapping("/info")
public String info(Model model) {
model.addAttribute("message", "Info");
return "info";
}
@GetMapping("/dashboard")
public String dashboard(Model model, Principal principal) {
model.addAttribute("message", "Hello " + principal.getName());
return "dashboard";
}
@GetMapping("/admin")
public String admin(Model model, Principal principal) {
model.addAttribute("message", "Hello Admin, " + principal.getName());
return "admin";
}
}
스프링 시큐리티 설정
- 해당 url에 접속할 수 있는 권한을 설정한다.
- 스프링 부트가 제공하는 자동설정에 의해 기본 유저정보가 등록이 되어 있다.
- id는 user이고
- passwrod는 콘솔창에 나타난다. (Using generated security password: ac5db21b-22bc-4283-bc0d-eae8d8e9cf54)
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.mvcMatchers("/", "/info").permitAll()
.mvcMatchers("/admin").hasRole("ADMIN")
.anyRequest().authenticated();
http.formLogin();
http.httpBasic();
}
}
유저정보를 고정
- application.properties 파일에서 설정
spring.security.user.name=admin
spring.security.user.password=123
spring.security.user.roles=ADMIN
반응형
'Spring Security' 카테고리의 다른 글
Spring Security 테스트 - 1 (0) | 2021.01.04 |
---|