목록SpringFrameWork/SpringSecurity (16)
개발자의 오르막
참조문서 - springsource.tistory.com/80 - sjh836.tistory.com/165 spring security 파헤치기 (구조, 인증과정, 설정, 핸들러 및 암호화 예제, @Secured, @AuthenticationPrincipal, 참조문서 https://docs.spring.io/spring-security/site/docs/4.2.7.RELEASE/reference/htmlsingle/#getting-started http://springsource.tistory.com/80 https://okky.kr/article/382738 1. 스프링 시큐리티란?.. sjh836.tistory.com 1. 스프링 시큐리티 정의 스프링 시큐리티란 스프링 기반의 어플리케이션의 인증과 ..
# 스프링 데이터 연동 compile group: 'org.springframework.security', name: 'spring-security-data', version: '4.0.0.RELEASE' - 먼저 테스트를 위한 Book 데이터를 만들기 위해 도메인과 DefaultDataGenerator 를 만들어 본다. - Book @Entity @Getter @Setter public class Book { @Id @GeneratedValue private Integer id; private String title; @ManyToOne private Account author; public Integer getId() { return id; } } - DefaultDataGenerator @Compo..
# 메소드 시큐리티 - @EnableGlobalMethodSecurity @EnableGlobalMethodSecurity(jsr250Enabled = true, prePostEnabled = true, securedEnabled = true) - @Secured 와 @RollAllowed 메소드 호출 이전에 권한을 확인한다. 스프링 EL을 사용하지 못한다. - @PreAuthorize 와 @PostAuthorize 메소드 호출 이전 이후에 권한을 확인할 수 있다. 스프링 EL을 사용하여 메소드 매개변수와 리턴값을 검증할 수 있다. - 메소드를 활용하여 시큐리티 메소드 사용하기 1. 먼저 MethodSecurity 를 사용하기 위해 config 패키지에 클래스를 아래와 같이 생성하고 선언한다. @Conf..
# Thymeleaf SpringSecurity - build.gradle 에서 의존성을 추가해준다. compile group: 'org.thymeleaf.extras', name: 'thymeleaf-extras-springsecurity5', version: '3.0.4.RELEASE' - authorization 을 통한 분기처리를 thymeleaf 문법을 통해 구현할 수 있다. - Index.html Name Logout Login 위의 부분을 타임리프의 sec 네임스페이스를 쓰면 더 간결하게 바꿀 수 있다. Hello Name Logout Login sec:authentication 을 통해 hasRole, anonymous 등을 설정할 수 있다.
# Security Custom Filter 만들기 public class LoggingFilter extends GenericFilter { private Logger logger = LoggerFactory.getLogger(this.getClass()); @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { StopWatch stopWatch = new StopWatch(); stopWatch.start(); chain.doFilter(request, response); stopWatch.stop(); lo..
# UsernamePasswordAuthenticationFilter : 폼 로그인을 처리하는 인증 필터 - 사용자가 폼에 입력한 username 과 password로 Authentication을 만들고 AuthenticationManager를 사용하여 인증을 시도한다. - AuthenticationManager (ProviderManager) 는 여러 AuthenticationProvider 를 사용하여 인증을 시도하는데, 그 중에 DaoAuthenticationProvider 는 UserDetailsService를 사용하여 UserDetails 정보를 가져와 사용자가 입력한 password 와 비교한다. # DefaultLoginPageGeneratingFilter - 기본 로그인 폼 페이지를 생성해..