로그인시 /j_spring_security_check 에대해서 질문입니다.
- 작성자 :
- 임*재
- 작성일 :
- 2011-04-12 16:31:08
- 조회수 :
- 5,054
- 구분 :
- 공통컴포넌트
- 진행상태 :
- 완료
Q
후앙 일주일 째 분석하고 변경하면서 공부를 하고있습니다.
그러던중 정말 모르겠는것이 있어서 이렇게 글을 올립니다.
다름 아닌
/j_spring_security_check
부분에서
일단 세팅은 공통 컴포넌트 그대로고요.
업무사용자에 경우 잘되지만
일반사용자, 기업사용자 로그인 에 대해 보려고했으나
두개의 사용자는 전부
authentication-failure-url 로 떨어지더라고요
여기서
프로퍼티 usersByUsernameQuery 를 보면 이건 업무 사용자만 추리는 쿼리지요????
아 다시 보니깐 ... 조직정보랑 보네요 ㅡㅡ; 조직정보가 등록이안되면 로그인이 펄스로 떨어지게 되어있는건가요??
그런듯 싶은데... 일반 사용자랑 기업 사용자는 조직정보가 안들어가나요? 그렇다면.. 일반사용자랑 기업 사용자가 로그인하기 위해서는... 위에 쿼리를 바꿔줘야되나요 아니면 조직 정보를 추가해줘야되나요.. 임 이도 저도 아니면...... ㅠㅠ
두번 째
authoritiesByUsernameQuery 이걸 보면 ... 이건 뷰어랑 시큐리티 테이블이 랑 그냥 비교해서 나오더라고요...
솔직히 제가 시큐리티 부분을 지금 이해를 잘못하여 이런질문을 올리게되었습니다.
일반 로그인과 기업 로그인을해서 정상적으로 defaulttarget-url 로 넘어가려면 usersByUsernameQuery??를 변경해줘야되는것인가요?
아니면 현재 소스로 되어야 되는건데 제가 못하는것인지 ㅜㅜ
또한 ...
<form-login login-processing-url="/j_spring_security_check"
authentication-failure-url="/login.do?login_error=1"
default-target-url="/actionMain.do"
login-page="/index.jsp?flag=L" />
이 부분에서 <참 경로는 제가 조금 바꾸었어요 ^^>
로그인체크가 제대루 이루어지면 default-target-url 로 넘어가는데 ..
로그인 분야에 따라 .. 그러니깐 일반,기업,업무 로그인에 따라
타켓 url을 변경시켜줄수있나요??
아주 기본적인것일거라 생각되는데.. 영 이해가 되지않아 큐에이에 올려봐요 ..
참.. 이건 그냥 건의인데 q/a 게시판에 질문란 답변 란이 너무 작아요 ㅜㅜ 키워주심안되나요 ㅎ
그러던중 정말 모르겠는것이 있어서 이렇게 글을 올립니다.
다름 아닌
/j_spring_security_check
부분에서
일단 세팅은 공통 컴포넌트 그대로고요.
업무사용자에 경우 잘되지만
일반사용자, 기업사용자 로그인 에 대해 보려고했으나
두개의 사용자는 전부
authentication-failure-url 로 떨어지더라고요
여기서
프로퍼티 usersByUsernameQuery 를 보면 이건 업무 사용자만 추리는 쿼리지요????
아 다시 보니깐 ... 조직정보랑 보네요 ㅡㅡ; 조직정보가 등록이안되면 로그인이 펄스로 떨어지게 되어있는건가요??
그런듯 싶은데... 일반 사용자랑 기업 사용자는 조직정보가 안들어가나요? 그렇다면.. 일반사용자랑 기업 사용자가 로그인하기 위해서는... 위에 쿼리를 바꿔줘야되나요 아니면 조직 정보를 추가해줘야되나요.. 임 이도 저도 아니면...... ㅠㅠ
두번 째
authoritiesByUsernameQuery 이걸 보면 ... 이건 뷰어랑 시큐리티 테이블이 랑 그냥 비교해서 나오더라고요...
솔직히 제가 시큐리티 부분을 지금 이해를 잘못하여 이런질문을 올리게되었습니다.
일반 로그인과 기업 로그인을해서 정상적으로 defaulttarget-url 로 넘어가려면 usersByUsernameQuery??를 변경해줘야되는것인가요?
아니면 현재 소스로 되어야 되는건데 제가 못하는것인지 ㅜㅜ
또한 ...
<form-login login-processing-url="/j_spring_security_check"
authentication-failure-url="/login.do?login_error=1"
default-target-url="/actionMain.do"
login-page="/index.jsp?flag=L" />
이 부분에서 <참 경로는 제가 조금 바꾸었어요 ^^>
로그인체크가 제대루 이루어지면 default-target-url 로 넘어가는데 ..
로그인 분야에 따라 .. 그러니깐 일반,기업,업무 로그인에 따라
타켓 url을 변경시켜줄수있나요??
아주 기본적인것일거라 생각되는데.. 영 이해가 되지않아 큐에이에 올려봐요 ..
참.. 이건 그냥 건의인데 q/a 게시판에 질문란 답변 란이 너무 작아요 ㅜㅜ 키워주심안되나요 ㅎ
A
안녕하세요.. 임희재님..
우선 공통컴포넌트와 실행환경의 spring security 처리는 약간의 차이가 있습니다.
실행환경 부분은 usersByUsernameQuery에 지정된 query를 직접 호출하는 방식이지만,
공통컴포넌트는 추가적인 사용자 관리가 포함되기 때문에
실제 usersByUsernameQuery query를 호출하기 전에..
자체 인증을 먼저 호출합니다.
호출하는 부분은 egovframework.com.uat.uia.web.EgovLoginController 부분으로
actionLogin() 메소드 부분입니다.
이 부분에 정상적으로 로그인 정보가 확인되고 나며.. /j_spring_security_check를 호출합니다.
이 때 확인되는 query는 "loginDAO.actionLogin"(query id)로 다음 파일을 확인해 보시면 될 것 같습니다.
/src/main/resources/egovframework/sqlmap/com/uat/uia/EgovLoginUsr_SQL*.xml
이 query에서 회원 구분에 따라 query가 dynamic 방식으로 구성되어 있습니다.
두번째 질문도.. 위 query를 확인하시면 될 것 같습니다. (변경 포함)
다음으로.. 로그인이 정상적으로 수행되면..
default-target-url로 지정된 페이지가 호출되지만..
파라미터 중 "spring-security-redirect"로 로그인 후 넘어갈 페이지를 지정하면
해당 페이지로 이동하실 수 있습니다.
이 부분을 활용하셔서..
사용자 구분에 따라 해당 파라미터를 강제로 넣어주시면 될 것 같습니다.
(파라미터를 강제로 넣어줄 수 없기 때문에.. /j_spring_security_check를 호출하기 전에
spring-security-redirect 파라미터를 생성하는 jsp 페이지가 필요함)
그럼.. 즐거운 하루되십시오.
감사합니다.
우선 공통컴포넌트와 실행환경의 spring security 처리는 약간의 차이가 있습니다.
실행환경 부분은 usersByUsernameQuery에 지정된 query를 직접 호출하는 방식이지만,
공통컴포넌트는 추가적인 사용자 관리가 포함되기 때문에
실제 usersByUsernameQuery query를 호출하기 전에..
자체 인증을 먼저 호출합니다.
호출하는 부분은 egovframework.com.uat.uia.web.EgovLoginController 부분으로
actionLogin() 메소드 부분입니다.
이 부분에 정상적으로 로그인 정보가 확인되고 나며.. /j_spring_security_check를 호출합니다.
이 때 확인되는 query는 "loginDAO.actionLogin"(query id)로 다음 파일을 확인해 보시면 될 것 같습니다.
/src/main/resources/egovframework/sqlmap/com/uat/uia/EgovLoginUsr_SQL*.xml
이 query에서 회원 구분에 따라 query가 dynamic 방식으로 구성되어 있습니다.
두번째 질문도.. 위 query를 확인하시면 될 것 같습니다. (변경 포함)
다음으로.. 로그인이 정상적으로 수행되면..
default-target-url로 지정된 페이지가 호출되지만..
파라미터 중 "spring-security-redirect"로 로그인 후 넘어갈 페이지를 지정하면
해당 페이지로 이동하실 수 있습니다.
이 부분을 활용하셔서..
사용자 구분에 따라 해당 파라미터를 강제로 넣어주시면 될 것 같습니다.
(파라미터를 강제로 넣어줄 수 없기 때문에.. /j_spring_security_check를 호출하기 전에
spring-security-redirect 파라미터를 생성하는 jsp 페이지가 필요함)
그럼.. 즐거운 하루되십시오.
감사합니다.