티스토리 뷰
1. 데이터베이스를 사용한 인증 적용
- 기본 스키마 적용 / 사용할 DB 설정
<jdbc-user-service>에 datasource를 참조하도록 하여 security.xml파일 수정
- 기본 예제와 다른 점은 UserDetailService에 대한 구체적인 구현 내용
(JdbcDaoImpl를 상속하여 Custom UserDetailService 클래스를 생성)
- 스프링 시큐리티에서는 JDBC 데이터베이스와 관련 일반적인 CRUD 기능을 제공함.
(JdbcUserDetailsManager 빈 선언 및 CRUD 기능을 제공하는 UserDetailManager 인터페이스 매소드를 구현하여 실질적인 유머와 관련된 CRUD 작업 내용으로 작성)
- JdbcDaoImpl의 주요 기능 중 하나는 GratedAuthority를 그룹으로 분류, 간접 레벨을 두어 개별 그룹에 대해 권한 부여가 가능함. => Group-Based-Access Control, GABC)라고 함.
- UserInfo, User, Group, GroupPermission, Permission 스키마를 사용하여 JdbcDaoImpl을 수정
userByUsernameQuery, authoritiesByUsernameQuery, groupAuthoritiesByUsernameQuery 등의 쿼리명을 사용하여 사용자, 권한 및 그룹 권환을 반환(JdbcUserService XML 설정에 해당 퀴리의 내용을 삽입하여 적용)
2. 보안 비밀번호 설정
- 비밀번호 적용 규칙
-> 비밀번호는 텍스트로 저장해서는 안됨
-> 사용자가 제공한 비밀번호와 저장소에 저장된 값과 비교하는 과정이 있어야 함.
-> 비밀번호는 바로 제공되어서는 안됨
- Password Encoder 사용
PlaintextPasswordEncoder : 일반 텍스트 인코딩 처리
Md4PasswordEncoder : MD4 해리 알고리즘을 사용, 안전한 알고리즘이 아님
Md5PasswordEncoder : MD5 단방향 인코딩 알고리즘 사용
ShaPasswordEncoder : 단방향 인코딩 알고리즘 사용, 인코딩 레벨을 설정할 수 있는 기능이 있음.
LdapShaPasswordEncoder : LDAP 인증 저장소, 9장에서 자세히
- 비밀번호 인코딩은 해당하는 클래스 빈을 설정하여 XML 설정을 진행.
(해당 빈 설정 후, SQL에서 로드한 비밀번호를 인코딩 처리, initMethod 지정)
3. 비밀번호 솔트 제공
- 저장소에 존재할 수 있는 동일한 인코딩 값은 잠재적인 보안 문제로 이어질 수 있음.
- 솔팅(Salting 적용)(인코딩된 데이터에 약간의 데이터 추가를 하는 개념)
사용자 생성 시점의 날짜 데이터, 랜덤 텍스트 등
- SaltSource 빈 생성, PasswordEncoder설정에 Salt-Source를 추가하여 빈 설정 완료
4. SSL을 사용한 사이트 보안
- HTTPS(SSL / TLS) 적용
- SSL 사용을 위한 톰캣 설정 및 키 저장소 생성
- 톰캣 SSL 커넥터 생성 및 <http> 설정에서의 채널로 https 설정(https, any, http)
(보호된 영역과 보호되지 않는 영역에 따라서 해당 require-channel 설정 처리)
- 포트 맵핑(80/443) 이외에 명시적으로 다른 포트를 사용할 수 있음.( <port-mappings>설정 )
'Programing > Java' 카테고리의 다른 글
[Maven] 주요 개념 / 내용 정리 (0) | 2016.04.19 |
---|---|
[Mybatis] Stored Procedure 호출 샘플 (0) | 2016.02.29 |
[MAC] JDK Version 변경 (0) | 2016.01.14 |
[Spring Security] 3장 내용 정리 (0) | 2015.12.22 |
이클립스 속도 향상 (eclipse.ini 수정) (0) | 2015.01.14 |
- Total
- Today
- Yesterday
- Prototype
- Sublime Text 2
- pm2
- Package Control
- Spring
- package.js
- 스프링
- maven
- Kotlin
- Spring Boot
- HttpClient
- WebFlux
- HTTP
- Squelize.js
- RestTemplate
- jade
- springboot
- EJS
- node.js
- http method
- ecma
- Sublime Text 3
- SideBarEnhancements
- Spring MVC
- cluster
- Express.js
- Handlebars
- tomcat
- Til
- implicit prototype chain
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |