| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- N과M
- 이진탐색
- DP
- 도커교과서
- 구현
- CS
- Stack
- 퀵정렬
- 티스토리챌린지
- programmers
- 백트래킹
- 이분탐색
- JPA
- docker
- Spring
- 투포인터
- priorityqueue
- 취준
- MySQL
- BOJ
- 트리
- Security
- BFS
- Queue
- dfs
- 오블완
- 코딩테스트
- Simulation
- 그리디
- Java
- Today
- Total
목록Spring (10)
Untitled1.class
Spring Security는 Request 수준에서 권한 부여를 모델링하는 것 외에도 method 수준에서도 모델링을 지원한다.Application에서 @Configuration class에 @EnableMethodSecurity annotation을 추가하거나 XML 설정 파일에 를 추가하여 이 기능을 활성화할 수 있다.그러면 @PreAuthorize, @PostAuthorize, @PreFilter, @PostFilter로 Spring 관리 class나 method에 즉시 주석을 달아 입력 매개변수와 반환 값을 포함한 method 호출을 승인할 수 있다.How Method Security WorksSpring Security의 method 권한 부여 지원은 다음과 같은 경우에 유용하다:세분화된 권한..
Spring Security를 사용하면 Request 수준에서 권한 부여를 모델링할 수 있다. 예를 들어, Spring Security를 사용하면 /admin 아래의 모든 page에는 하나의 권한이 필요하고, 다른 모든 page에는 인증만 필요하다고 정의할 수 있다.기본적으로 Spring Security는 모든 요청에 대한 인증을 요구한다. 하지만 HttpSecurity instance를 사용할 때는 항상 권한 부여 규칙을 선언해야 한다.HttpSecurity instance가 있는 경우, 최소한 다음 작업을 수행해야 한다:http .authorizeHttpRequests((authorize) -> authorize .anyRequest().authenticated() )이는 Spring Securit..
사용자를 인증하는 가장 일반적인 방법 중 하나는 사용자 이름과 비밀번호를 검증하는 것이다. Spring Security는 사용자 이름과 비밀번호를 이용한 인증을 위한 포괄적인 지원을 제공한다.다음을 사용하여 사용자 이름 및 비밀번호 인증을 구성할 수 있다:@Configuration@EnableWebSecuritypublic class SecurityConfig { @Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http .authorizeHttpRequests((authorize) -> authorize .anyRequest().authenticated() ) .httpBa..
Authorization ArchitectureAuthorities인증에서는 모든 인증 구현이 GrantedAuthority 객체 목록을 저장하는 방식을 설명한다. 이 객체는 주체에게 부여된 권한을 나타낸다. GrantedAuthority 객체는 AuthenticationManager에 의해 Authentication 객체에 삽입되며, 이후 AccessDecisionManager instance가 권한 부여 결정을 내릴 때 이 객체를 읽는다.GrantedAuthority interface는 오직 하나의 method를 보유하고 있다:String getAuthority();이 method는 AuthorizationManager instance에서 GrantedAuthority의 정확한 문자열 표현을 얻는 데..
Servlet Authentication ArchitectureSecurityContextHolder: Spring Security가 인증 대상자의 세부 정보를 저장하는 곳SecurityContext: SecurityContextHolder에서 가져오며, 현재 인증된 사용자의 Authentication을 포함Authentication: 사용자가 인증하기 위해 제공한 자격 증명 또는 SecurityContext의 현재 사용자를 제공하기 위해 AuthenticationManager에 입력될 수 있음GrantedAuthority: 인증에 대한 주체에게 부여된 권한(예: 역할, 범위 등)AuthenticationManager: Spring Security Filter가 인증을 수행하는 방식을 정의하는 APIPr..
Spring Security의 Servlet 지원은 Servlet Filter에 기반하므로, 먼저 Filter의 역할을 전반적으로 살펴보는 것이 좋다.Client가 Application에 Request를 보내면 Container는 Request URI 경로를 기반으로 HttpServletRequest를 처리해야 하는 Filter instance와 Servlet을 포함하는 Filter chain을 생성한다. Spring MVC Application에서 Servlet은 DispatcherServlet의 instance이다. 하나의 Servlet은 최대 하나의 HttpServletRequest와 HttpServletResponse를 처리할 수 있다.두 개 이상의 Filter를 사용하여 다음과 같은 작업을 수행..
Spring은 1.0부터 에러 처리를 위한 BasicErrorController를 구현해 두었다.Spring Boot는 예외가 발생하면 기본적으로 /error로 에러 요청을 다시 전달하도록 WAS(웹 서버+웹 컨테이너) 설정을 해 두었다.별도 설정이 없다면 예외 발생 시 BasicErrorController로 에러 처리 요청이 전달된다. (WebMvcAutoConfiguration)일반적인 요청 흐름WAS(Tomcat) → Filter → Servlet(Dispatcher servlet) → Interceptor → ControllerServlet은 dispatcherType로 request의 종류를 구분하며, 에러 처리 요청은 ERROR이다.Filter는 Servlet 기술이므로 Filter 등록 시에..
엔티티의 연관관계를 매핑할 때는 다음 3가지를 고려해야 한다.다중성다대일일대다일대일다대다(거의 사용 X)단방향, 양방향연관관계의 주인연관관계의 주인은 mappedBy 속성을 사용하지 않는다.연관관계의 주인이 아니면 mappedBy=”주인 필드 이름”을 사용한다.JPA는 두 객체의 연관관계 중 하나(주인)를 정해서 DB FK를 관리한다.책에서는 왼쪽을 연관관계의 주인으로 가정해서 분류한다.6.1 다대일6.1.1 다대일 단방향FK는 항상 N 쪽에 있다.따라서 객체 양방향 관계에서 연관관계의 주인은 항상 N 쪽이다.회원:팀=N:1 (단방향)예제 6.1 회원 엔티티@Entitypublic class Member{ @Id @GeneratedValue @Column(name="MEMBER_ID") private L..
