SpringBoot 2.1.7 통합 SpringSecurity 시리즈 (1)
3309 단어 springboot
안전 관리 프레임 워 크 에서 Shiro 와 SpringSecurity 는 모두 쟁쟁 한 존재 이다.
Shiro 에 비해 SSM / SSH 에서 Spring Security 를 통합 하 는 것 은 번 거 로 운 작업 이기 때문에 Spring Security 는 Shiro 보다 기능 이 강하 지만 사용 은 오히려 Shiro 보다 많 지 않다 (Shiro 는 Spring Security 가 많 지 않 지만 대부분의 항목 에 있어 Shiro 도 충분 하 다).
하지만 spring boot 가 나 오 면 SpringSecurity 를 0 으로 설정 할 수 있 으 니 너무 편리 하지 않 습 니 다.잔말 말고 통합 학습 을 시작 하 겠 습 니 다.
첫 체험
1. 가방 안내
org.springframework.boot
spring-boot-starter-security
2. 테스트
@RestController
public class HelloController
{
@GetMapping("/hello")
public String hello() {
return "Hello";
}
}
방문 하 다.http://localhost:8080/hello 로그 인 페이지 로 자동 으로 이동 합 니 다. 기본 사용자 이름 user 기본 암 호 는 콘 솔 에 표 시 됩 니 다.
2. 프로필 이나 코드 에 security 에 필요 한 사용자 이름과 비밀 번 호 를 설정 합 니 다.
첫 번 째: 프로필 에 설정
spring.security.user.name=user
spring.security.user.password=123
spring.security.user.roles=admin
두 번 째: 코드 에 설정
Security Config. 자바 클래스 를 새로 만 듭 니 다.
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter
{
// spring5
@Bean
PasswordEncoder passwordEncoder(){
return NoOpPasswordEncoder.getInstance();
}
// :
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception
{
auth.inMemoryAuthentication()
.withUser("terry").password("123").roles("admin")
.and()
.withUser("tt").password("456").roles("user");
}
}
3 설정 HttpSecurity
1. 위 에 있 는 프로필 에 이어서 쓰기
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter
{
// spring5
@Bean
PasswordEncoder passwordEncoder(){
return NoOpPasswordEncoder.getInstance();
}
// :
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception
{
auth.inMemoryAuthentication()
.withUser("terry").password("123").roles("admin")
.and()
.withUser("tt").password("456").roles("user");
}
//HttpSecurity
@Override
protected void configure(HttpSecurity http) throws Exception
{
http.authorizeRequests()
.antMatchers("/admin/**").hasRole("admin")
.antMatchers("/user/**").hasAnyRole("admin","user")
//.antMatchers("/user/**").access("hasAnyRole('user','admin')")
.anyRequest().authenticated()
.and()
.formLogin()
.loginProcessingUrl("/doLogin")
.permitAll()
.and()
.csrf().disable();// postman, csrf
}
}
2. 테스트
@RequestMapping("/admin/hello")
public String admin(){
return "Hello admin";
}
@RequestMapping("/user/hello")
public String user(){
return "hello user";
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin Springboot -- 파트 14 사용 사례 REST로 전환하여 POST로 JSON으로 전환前回 前回 前回 記事 の は は で で で で で で を 使っ 使っ 使っ て て て て て リクエスト を を 受け取り 、 reqeustbody で 、 その リクエスト の ボディ ボディ を を 受け取り 、 関数 内部 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.