1. 이 포스트는 Spring : Web MVC + Security + JDBC 시리즈에 연장이다. xml파일 설정은 사용하지 않는다. 1-1 하려는 것은 우선 in-memory로 인증을 구현한다. -> 이 포스트에서 할 내용 1-2 Database를 생성하고 hibernate로 유저 등록을 구현한다. - difficult 1-3 가입정보에 대한 Validation처리를 작성한다. Customer Validatior로 구현한다. - difficult 1-4 In-memory가 아닌 DaoAuthenticationProvider로 hibernate를 사용한 Spring security 인증처리로 변경 - not easy 1-5 처음부터 사용자 스키마로 스프링 security 로그인을 구현하려면 난이도가 헬..
1. 스프링 Security는 hashing(변환) 알고리즘으로 bcrypt을 권장하고 있다. 자세한 건 아래 링크 참조 1-1 단방향 hasning이다. 즉 암호화 된 값으로 원래값 복원이 불가능하다. 1-2 추가적인 보호를 위해 hashing 할때 랜덤 값(salt)을 추가하여 사용한다. 1-3 BCypt의 장점에 대한 글이다. Why you should use BCrypt to hash passwords In the online world, passwords play a critical role in keeping your data and other important information safe. For this reason, ensuring… medium.com 1-4 Salited Passwo..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bLgoCn/btqEcnYn0JV/q82KCHxkDkng4xk4PeFRA0/img.png)
0. 이 포스트는 이전 Spring : Web MVC + Spring 시리즈의 연속이다. 1. 이 포스트는 in-Memory 인증에서 MySql(JDBC)을 이용한 인증으로 프로그램을 변경하는 내용이다. 1-1 in Memory 인증은 아래 링크한 포스트의 제일 마지막 부분에 in-memory 인증 설정부분을 참조한다. Spring Security : Web MVC + Security with Java Config 설정하기 1. 이젠 xml 설정 같은 건 사용하지 않는다. Spring WebMVC with Java Config(no XML) 2. web.xml을 사용하지 않으려면 maven pom에 maven-war-plugin이 있어야 한다. 2-1 org.apache.maven.archetype we..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bqgJEm/btqEd7tcquP/a3WhtCmUVZFfmOFDfQavI1/img.png)
1. ADMIN이나 MANAGER만 볼 수 있는 링크를 EMPLOYEE권한만 가지고 있는 사용자에게 보여줄 필요가 없다. 2. 이렇게 선별적인 content의 표출은 Security jsp taglibs로 가능하다 2-1 security:authorize element를 통해 권한에 따른 content 표출이 가능하다. 2-2 access 속성에 SecurityConfig에서 설정한 것 처럼 hasRole로 해당 권한에 따른 표출을 다르게 할 수 있다. Leadership Meeting(Only for Managers) System Meeting(Only for Admins) 2-3 전체 페이지 소스는 아래와 같다. Company Website You are now logged in User :: Rol..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bsSDvS/btqEbtSbYny/UxUN3u6Bkg3Wq4mfSIT9K1/img.png)
1. 사용자가 로그인을 성공했지만 권한이 없는 페이지로 접근한 경우 에러 페이지가 보여진다. 2. 이 페이지를 custom page로 바꾸는 방법에 대한 포스트다. 3. Security Config에 접근 거부가 생긴 경우 전환할 url을 설정한다. 3-1 접근 거부가 발생한 경우 security filters는 설정된 url로 request를 요청하게 된다. 3-1-1 아래 소스의 마지막 줄 .exceptionHandling().accessDeniedPage() 설정의 url을 설정할 수 있다. package pe.pilseong.springsecurity.config; import org.springframework.context.annotation.Configuration; import org.sp..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cakPhB/btqEdw7MjiS/I0k4n7vr7enhG5MookyFSK/img.png)
1. 바로 전 포스팅 시작 페이지(Landing page) 사용하기에서 설정한 내용을 가지고 설명한다. package pe.pilseong.springsecurity.config; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.anno..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cfojZH/btqEdkGuf4e/brKKOGFXG93Rlqf9rfTSGk/img.png)
1. 일반적인 홈페이지는 지난 포스트처럼 첫화면부터 바로 로그인 페이지가 나오지 않는다. 1-1 보통은 첫페이지를 볼 수 있고 거기서 로그인을 요청하거나 원하는 링크를 눌러 인증 페이지로 이동한다. 1-2 이 포스트는 첫 페이지에 접근 후 로그인을 사용하도록 변경한 내용이다. 2. 홈페이지 진입 시 Landing 페이지를 사용도록 Security Config에 설정한다. 2-0 HttpRequest에 대한 설정이므로 HttpSecurity을 다루는 메소드를 override한다. 2-1 landing페이지의 접근 권한을 모두에게 주고 2-1-1 아래 소스의 "/"는 랜딩페이지 요청 url이고 모든 사람들에게 사용이 허용된다. 2-2 접근 제어할 페이지에 접근 권한을 지정한다. 2-2-0 접근 제어는 ant..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/8T140/btqEcGb8A98/JHtlANR6WJ83L2wlDVE1W1/img.png)
1. 스프링 security는 사용자와 권한 정보에 접근할 수 있는 Tag lib를 제공한다. 1-1 이 tag lib로 principal 객체를 접근할 수 있고 다양한 정보를 참조할 수 있다. 1-2 사용하는 방법은 1-2-1 spring security taglibs를 dependency에 추가한다. org.springframework.security spring-security-taglibs ${springsecurity.version} 1-2-2 사용할 jsp페이지에 taglib include한다. 1-2-2-1 로그인 후에 접근했던 페이지가 열린 것이라고 가정한다. 1-2-3 페이지에서 필요한 곳에 테그를 사용한다. 1-2-3-1 아래의 소스를 보면 username, authories라는 pri..
- Total
- Today
- Yesterday
- 도커 개발환경 참고
- AWS ARN 구조
- Immuability에 관한 설명
- 자바스크립트 멀티 비동기 함수 호출 참고
- WSDL 참고
- SOAP 컨슈머 참고
- MySql dump 사용법
- AWS Lambda with Addon
- NFC 드라이버 linux 설치
- electron IPC
- mifare classic 강의
- go module 관련 상세한 정보
- C 메모리 찍어보기
- C++ Addon 마이그레이션
- JAX WS Header 관련 stackoverflow
- SOAP Custom Header 설정 참고
- SOAP Custom Header
- SOAP BindingProvider
- dispatcher 사용하여 설정
- vagrant kvm으로 사용하기
- git fork, pull request to the …
- vagrant libvirt bridge network
- python, js의 async, await의 차이
- go JSON struct 생성
- Netflix Kinesis 활용 분석
- docker credential problem
- private subnet에서 outbound IP 확…
- 안드로이드 coroutine
- kotlin with, apply, also 등
- 안드로이드 초기로딩이 안되는 경우
- navigation 데이터 보내기
- 레이스 컨디션 navController
- raylib
- 설정
- 로그인
- MYSQL
- Many-To-Many
- Spring Security
- 하이버네이트
- Spring
- one-to-many
- crud
- form
- 설정하기
- Rest
- Security
- jsp
- 상속
- Validation
- 스프링
- WebMvc
- XML
- 자바
- Angular
- hibernate
- spring boot
- 외부파일
- one-to-one
- 스프링부트
- RestTemplate
- login
- 매핑
- mapping