j_spring_security_check 추가 문의
- 작성자 :
- 박*하
- 작성일 :
- 2012-11-28 09:53:54
- 조회수 :
- 1,447
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
안녕하세요.
아래 답변에 대해 추가적인 문의 드립니다.
프레임워크 소스로 봤을 때는 아래 방식에 별 무리가 없는거 같은데
안될 것 같다는 답변을 주셔서 추가 문의 드립니다.
1. j_spring_security_check 처리시 j_username, j_password 모두 넘기셔야 합니다.
-> 실제 사용은 j_username 만 사용하는 것으로 보이는데 반드시 j_password 넘겨야 하나요? 현재 테스트 시 j_username 만으로 이상은 없습니다.
3. EgovSessionMapping 처리는 usersByUsernameQuery 처리 이후에 호출되기 때문에 말씀하신 것 처럼 되지는 않을 것 같습니다.
-> usersByUsernameQuery 호출 시 user class에서 그 값을 갖고 인증 체크 시에 해당 인증을 시도 하려는 context authentication의 정보와 비교하여 인증을 하게 되는데 EgovSessionMapping 에서 password를 ""로 처리하고 loadUserByUsername 에서 역시 ""으로 처리 시 username 이 유니크 하다면 username 만으로도 충분하 듯 합니다. 이와 같이 처리하는 것이 잘못된 방법인가요? (현재 위 방식으로 구현 되어 운영 중입니다)
죄송하지만 잘 못된 방법이라면 올바른 가이드 부탁 드리겠습니다.
-------------------------------------------------------------------
j_spring_security_check에 궁금한게 있어 글 남깁니다.
j_spring_security_check는 j_username와 j_password로 인증하는 방식으로 알고 있습니다.
1. j_spring_security_check는 j_username만 넘겨주어도 무방한가요?
2. j_spring_security_check로 redirect 시 usersByUsernameQuery 로 연결 되는 것이 맞는지요?
3. 그리고 usersByUsernameQuery 에서 password를 조회 하지 않을 경우(단방향 암호화에 의해) EgovSessionMapping 에서 EgovUserDetails 리턴 시 password에 해당하는 2번째 인자에 ""를 입력하고 인증 통과를 위해 loadUserByUsername 에서 EgovUserDetails 리턴 시 password에 해당하는 2번째 인자에 ""를 입력하였습니다.
해당 방법이 잘못되진 않았는지요?
답변 부탁 드리겠습니다. 더 나은 방법이 있다면 좀 알려주세요...
1. j_spring_security_check 처리시 j_username, j_password 모두 넘기셔야 합니다.
2. 예.. 맞습니다. 위 2개의 파라미터를 usersByUsernameQuery를 가지고.. 인증을 처리합니다.
3. EgovSessionMapping 처리는 usersByUsernameQuery 처리 이후에 호출되기 때문에 말씀하신 것 처럼 되지는 않을 것 같습니다.
아래 답변에 대해 추가적인 문의 드립니다.
프레임워크 소스로 봤을 때는 아래 방식에 별 무리가 없는거 같은데
안될 것 같다는 답변을 주셔서 추가 문의 드립니다.
1. j_spring_security_check 처리시 j_username, j_password 모두 넘기셔야 합니다.
-> 실제 사용은 j_username 만 사용하는 것으로 보이는데 반드시 j_password 넘겨야 하나요? 현재 테스트 시 j_username 만으로 이상은 없습니다.
3. EgovSessionMapping 처리는 usersByUsernameQuery 처리 이후에 호출되기 때문에 말씀하신 것 처럼 되지는 않을 것 같습니다.
-> usersByUsernameQuery 호출 시 user class에서 그 값을 갖고 인증 체크 시에 해당 인증을 시도 하려는 context authentication의 정보와 비교하여 인증을 하게 되는데 EgovSessionMapping 에서 password를 ""로 처리하고 loadUserByUsername 에서 역시 ""으로 처리 시 username 이 유니크 하다면 username 만으로도 충분하 듯 합니다. 이와 같이 처리하는 것이 잘못된 방법인가요? (현재 위 방식으로 구현 되어 운영 중입니다)
죄송하지만 잘 못된 방법이라면 올바른 가이드 부탁 드리겠습니다.
-------------------------------------------------------------------
j_spring_security_check에 궁금한게 있어 글 남깁니다.
j_spring_security_check는 j_username와 j_password로 인증하는 방식으로 알고 있습니다.
1. j_spring_security_check는 j_username만 넘겨주어도 무방한가요?
2. j_spring_security_check로 redirect 시 usersByUsernameQuery 로 연결 되는 것이 맞는지요?
3. 그리고 usersByUsernameQuery 에서 password를 조회 하지 않을 경우(단방향 암호화에 의해) EgovSessionMapping 에서 EgovUserDetails 리턴 시 password에 해당하는 2번째 인자에 ""를 입력하고 인증 통과를 위해 loadUserByUsername 에서 EgovUserDetails 리턴 시 password에 해당하는 2번째 인자에 ""를 입력하였습니다.
해당 방법이 잘못되진 않았는지요?
답변 부탁 드리겠습니다. 더 나은 방법이 있다면 좀 알려주세요...
1. j_spring_security_check 처리시 j_username, j_password 모두 넘기셔야 합니다.
2. 예.. 맞습니다. 위 2개의 파라미터를 usersByUsernameQuery를 가지고.. 인증을 처리합니다.
3. EgovSessionMapping 처리는 usersByUsernameQuery 처리 이후에 호출되기 때문에 말씀하신 것 처럼 되지는 않을 것 같습니다.
A
안녕하세요.. 박종하님..
j_password를 지정하시 않으시고.. j_username만 /j_spring_security_check url로 넘기셨다는 말씀이시죠??
그럼.. usersByUsernameQuery에.. 두번째 컬럼을 어떻게 지정하셨나요??
이 두번째 파라미터를 j_password와 비교하여 인증여부를 결정합니다.
올리신 내용 중에 loadUserByUsername 의 password를 ""로 지정하셨다고 하신 것이.. usersByUsernameQuery의 2번째 컬럼인 패스워드를 ""로 지정하셨다는 말씀이신가요??
그렇다면.. j_password가 없더라도.. ""로 넘어와서... 2번째 컬럼의 패스워드의 ""와 비교하여 동일한 값이기 때문에.. 인증을 넘어간 경우입니다. (별도의 패스워드 인코더를 사용하지 않으셨다면..)
3번도.. 1번이 위와 같은 방식으로 인증이 통과되었기 때문에.. 처리된 것입니다.
(이전에 답변 드린 내용과 동일함)
다만, 이 경우는 보안상 문제가 있을 것 같습니다. 필요에 따라서 패스워드를 없이 처리하시기 위한 목적이시라면 다른 보안상의 추가 점검 등이 필요할 것 같습니다.
그럼.. 즐거운 하루되십시오.
감사합니다.
j_password를 지정하시 않으시고.. j_username만 /j_spring_security_check url로 넘기셨다는 말씀이시죠??
그럼.. usersByUsernameQuery에.. 두번째 컬럼을 어떻게 지정하셨나요??
이 두번째 파라미터를 j_password와 비교하여 인증여부를 결정합니다.
올리신 내용 중에 loadUserByUsername 의 password를 ""로 지정하셨다고 하신 것이.. usersByUsernameQuery의 2번째 컬럼인 패스워드를 ""로 지정하셨다는 말씀이신가요??
그렇다면.. j_password가 없더라도.. ""로 넘어와서... 2번째 컬럼의 패스워드의 ""와 비교하여 동일한 값이기 때문에.. 인증을 넘어간 경우입니다. (별도의 패스워드 인코더를 사용하지 않으셨다면..)
3번도.. 1번이 위와 같은 방식으로 인증이 통과되었기 때문에.. 처리된 것입니다.
(이전에 답변 드린 내용과 동일함)
다만, 이 경우는 보안상 문제가 있을 것 같습니다. 필요에 따라서 패스워드를 없이 처리하시기 위한 목적이시라면 다른 보안상의 추가 점검 등이 필요할 것 같습니다.
그럼.. 즐거운 하루되십시오.
감사합니다.