티스토리 뷰
728x90
인가 API - 권한 설정과 표현식
권한 설정은 선언적 방식과 동적 방식으로 나눌 수 있다.
선언적 방식
- URL - http.antMatchers("/users/**").hasRole("USER")
- Method - @PreAuthroize("hasRole(`USER`)")
동적 방식 - DB 연동 프로그래밍
@Override
protected void configure(HttpSecurity http) throws Exception {
//인가정책
http
.antMatcher("/shop/**")
.authorizeRequests()
.antMatchers("/shop/login", "/shop/users/**").permitAll()
.antMatchers("/shop/user").hasRole("USER")
.antMatchers("/shop/admin/pay").hasRole("ADMIN")
.antMatchers("/shop/admin/**").access("hasRole('ADMIN') or hasRole('SYS')")
.anyRequest().authenticated();
}
설정 시에는 구체적인 경로가 먼저 오고 그것보다 큰 범위의 경로가 뒤에 오도록 해야 한다!
ex) /shop/admin/pay , /shop/admin/**
위에 설정한 인가 정책을 통과해야만 자원에 접근할 수 있다.
메모리 방식으로 사용자를 생성하거나 권한을 설정할 수 있다. 개발할 때 편리할거 같네
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication().withUser("user").password("{noop}1111").roles("USER");
auth.inMemoryAuthentication().withUser("sys").password("{noop}1111").roles("SYS");
auth.inMemoryAuthentication().withUser("admin").password("{noop}1111").roles("ADMIN");
}
참고
728x90
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- Spring
- k8s
- docker
- Mac
- 북리뷰
- mybatis
- LocalDateTime
- Bash tab
- LocalDate
- intellij
- Spring Security
- localtime
- jQuery
- 오라클
- rocky
- Java
- springboot
- Linux
- mybatis config
- 베리 심플
- svn
- config-location
- input
- window
- Kotlin
- elasticsearch
- JavaScript
- oracle
- maven
- Github Status
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함