2017년 7월 11일 화요일

Spring Boot Security 연습

소스:

https://github.com/julyinsung/springboot/tree/master/boot_mvc_security

환경:

Type: gradle
Packaging: Jar
Java Version: 1.8
Boot Version: 1.5.4
MyBatis, MySQL, Thymeleaf, Web, Security

참조:

thymeleaf security : http://www.thymeleaf.org/doc/articles/springsecurity.html
security tag lib : http://docs.spring.io/spring-security/site/docs/4.2.x/reference/html/taglibs.html
security javascript expression: https://stackoverflow.com/questions/41434231/use-spring-security-in-thymeleaf-escaped-expressions-in-javascript
spring security reference :  http://docs.spring.io/spring-security/site/docs/4.2.3.RELEASE/reference/htmlsingle/
spring boot security 예제: http://cusonar.tistory.com/10
spring boot security 예제: http://zgundam.tistory.com/51
spring boot security 예제: http://www.namooz.com/2015/12/07/spring-boot-thymeleaf-10-spring-boot-security-final/
spring boot security 예제: http://syaku.tistory.com/286

개요:

user, role 테이블 생성, login  page 생성하여 Spring Security를 연습한다.

설명:

프로젝트 구조는 아래 그림과 같다.



Security설정은 SecurityConfig.java 클래스에서 한다.
소스에서 첫번째 configure메소드에서는 접근제한을 설정하고
두번째 configure메소드에서는 패스워드 암호화 설정
마지막 passwordEncoder메소드는 암호화 방식을 Bean으로 등록하여 다른 클래스에 주입하여 사용할 수 있다.

CustomUserDetailsServioce.java
UserDetailService를 implements한 CustomUserDetailsServioce.java는 login페이지에서 받은 login_id로 user테이블과 role테이블을 조회하여 UserDetails을 implements한 User 도메인에 적재한다.

user 와 role 테이블의 sql은 여기 참조.

로그인페이지와 로그인후 페이지는 아래와 같다.
로그인후 상단에 로그인 정보를 보여주기 위해서는 security tag가 필요한데 build.gradle 설정페이지의 dependencies에 compile('org.thymeleaf.extras:thymeleaf-extras-springsecurity4') 를 추가한다.

로그인 화면
로그인 후
로그인후 상단에 뿌려지는 정보는 default.html 페이지에서 확인할 수 있다.
먼저 페이지에 xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4" 을 추가(소스는 여기)하고 sec:authentication 태그를 이용한다.(소스는 여기)

댓글 없음:

댓글 쓰기