모바일 컴포넌트 (일반로그인)
- 작성자 :
- 박*웅
- 작성일 :
- 2012-08-02 16:32:38
- 조회수 :
- 1,763
- 구분 :
- 모바일
- 진행상태 :
- 완료
Q
모바일 컴포넌트를 사용하기위해 프로젝트 생성후
구성을 완료하고 서버를 띄운 상태입니다.
모바일기기로 접속하여 로그인을 하면 (TEST1, rhdxhd12) / (USER, rhdxhd12)
아주 잘됩니다.
로그인 컨트롤러의
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
에서 true로 넘어오구요.
PC에서 컴퓨터용 페이지로 접속하면 최초 모바일 로그인화면이 작동하는데 사용하지않으려 좌측메뉴의 일반 로그인을 누르면 PC용 일반로그인 컴포넌트 화면이 나옵니다.
여기서 위의 테스트계정들을 로그인해봐도 로그인이 되질 않습니다.
콘솔에 아무값이나 나오도록 해봤더니 로그인은 성공합니다.
그 뒤에 바로 actionMain.do 에서 메인으로 가는쪽에서
isAuthenticated 가 false로 받아오고는 끝나버립니다.
계속 로그인 화면으로 팅겨버려요~~!
여기저기 바꿔봐도 도대체 왜 그러는지 모르겠네요...
( 현재는 그냥 Boolean isAuthenticated = true; 라고 넣어버렸습니다... )
그리고 index.jsp에서 모바일 브라우저 접속을 체크하여 모바일 화면 PC 화면으로
분기를 하고자합니다. 접속체크는 소스넣으면 바로 작동합니다.
모바일과 PC용 사이트를 깔끔하게 분리하는것이 하나의 프로젝트로 com / mbl등으로 나누는게 나은건지... 아니면 프로젝트를 두개로 해서
http://localhost:8080/com
http://localhost:8080/mbl
이 나은지... 잘 모르겠네요...; 이런 질문까지드려 죄송하네요...; ㅠㅠ
----------------------
관한관리 문제로 조금 더 추가하겠습니다...!
기존에 제공되는 롤권한에서 제가 필요한 권한들로 바꿔서 작업하려고합니다.
모든 사용자 (ROLE_ANONYMOUS)
일반 가입 사용자 (ROLE_USER_GNR)
기업 가입 사용자 (ROLE_USER_ENT)
업무 가입 사용자 (ROLE_USER_USR)
관리자 (ROLE_ADMIN)
총 5개입니다.
저렇게 생성은 하였습니다만... 롤 계층구조에서 이렇게 주는것이 맞는건가요?
GNR, ENT, USR은 그냥 구분을 위한것이고 가지는 권한을 똑같습니다.
lNSERT aaa VALUES ('ROLE_ANONYMOUS','ROLE_USER_GNR');
lNSERT INTO aaa VALUES ('ROLE_ANONYMOUS','ROLE_USER_ENT');
lNSERT INTO aaa VALUES ('ROLE_ANONYMOUS','ROLE_USER_USR');
lNSERT INTO aaa VALUES ('ROLE_USER_GNR','ROLE_ADMIN');
lNSERT INTO aaa VALUES ('ROLE_USER_ENT','ROLE_ADMIN');
lNSERT INTO aaa VALUES ('ROLE_USER_USR','ROLE_ADMIN');
구성을 완료하고 서버를 띄운 상태입니다.
모바일기기로 접속하여 로그인을 하면 (TEST1, rhdxhd12) / (USER, rhdxhd12)
아주 잘됩니다.
로그인 컨트롤러의
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
에서 true로 넘어오구요.
PC에서 컴퓨터용 페이지로 접속하면 최초 모바일 로그인화면이 작동하는데 사용하지않으려 좌측메뉴의 일반 로그인을 누르면 PC용 일반로그인 컴포넌트 화면이 나옵니다.
여기서 위의 테스트계정들을 로그인해봐도 로그인이 되질 않습니다.
콘솔에 아무값이나 나오도록 해봤더니 로그인은 성공합니다.
그 뒤에 바로 actionMain.do 에서 메인으로 가는쪽에서
isAuthenticated 가 false로 받아오고는 끝나버립니다.
계속 로그인 화면으로 팅겨버려요~~!
여기저기 바꿔봐도 도대체 왜 그러는지 모르겠네요...
( 현재는 그냥 Boolean isAuthenticated = true; 라고 넣어버렸습니다... )
그리고 index.jsp에서 모바일 브라우저 접속을 체크하여 모바일 화면 PC 화면으로
분기를 하고자합니다. 접속체크는 소스넣으면 바로 작동합니다.
모바일과 PC용 사이트를 깔끔하게 분리하는것이 하나의 프로젝트로 com / mbl등으로 나누는게 나은건지... 아니면 프로젝트를 두개로 해서
http://localhost:8080/com
http://localhost:8080/mbl
이 나은지... 잘 모르겠네요...; 이런 질문까지드려 죄송하네요...; ㅠㅠ
----------------------
관한관리 문제로 조금 더 추가하겠습니다...!
기존에 제공되는 롤권한에서 제가 필요한 권한들로 바꿔서 작업하려고합니다.
모든 사용자 (ROLE_ANONYMOUS)
일반 가입 사용자 (ROLE_USER_GNR)
기업 가입 사용자 (ROLE_USER_ENT)
업무 가입 사용자 (ROLE_USER_USR)
관리자 (ROLE_ADMIN)
총 5개입니다.
저렇게 생성은 하였습니다만... 롤 계층구조에서 이렇게 주는것이 맞는건가요?
GNR, ENT, USR은 그냥 구분을 위한것이고 가지는 권한을 똑같습니다.
lNSERT aaa VALUES ('ROLE_ANONYMOUS','ROLE_USER_GNR');
lNSERT INTO aaa VALUES ('ROLE_ANONYMOUS','ROLE_USER_ENT');
lNSERT INTO aaa VALUES ('ROLE_ANONYMOUS','ROLE_USER_USR');
lNSERT INTO aaa VALUES ('ROLE_USER_GNR','ROLE_ADMIN');
lNSERT INTO aaa VALUES ('ROLE_USER_ENT','ROLE_ADMIN');
lNSERT INTO aaa VALUES ('ROLE_USER_USR','ROLE_ADMIN');
A
안녕하세요.. 박대웅님..
우선.. PC용 로그인 문제는 로그 정보가 필요한 것 같습니다.
log4j.xml 상에.. 다음과 같이 org.springframework 패키지쪽 로그 level을 DEBUG로 변경해서.. 로그를 확인해 보십시오.. (추가 또는 level만 변경)
<logger name="org.springframework" additivity="false">
<level value="DEBUG" />
<appender-ref ref="console" />
</logger>
모바일과 PC용 사이트 분리는 프로젝트 상황에 맞게 결정을 하시면 됩니다.
다만, 기준을.. 동일한 서비스를 다른 채널로만 제공하는 것이나.. 별개의 서비스이나에 따라.. 분리 여부를 결정하시면 되실 것 같습니다.
(Service 및 DAO를 공유하기 위해서는 하나의 webapp에 2개의 DispatcherServlet으로 분리해야 함.. 이 때 sevlet-mapping 상에 *.do, *.mdo로 구분하거나.. URL 상의 앞부분으로 com, mbl로 구분하시면 되실 것 같습니다.)
마지막 권한은.. 계층 구조 상.. 기본적인 계층은 다음과 같습니다.
하위 롤(CHILD_ROLE) : 상위 롤(PARENT_ROLE)
IS_AUTHENTICATED_REMEMBERED : IS_AUTHENTICATED_ANONYMOUSLY
ROLE_RESTRICTED : IS_AUTHENTICATED_FULLY
ROLE_USER : ROLE_RESTRICTED
추가적으로 다음과 같이 작업하시면 되실 것 같습니다. (올려주신 정보에 의해 유추)
ROLE_USER_GNR : ROLE_ADMIN
ROLE_USER_ENT : ROLE_ADMIN
ROLE_USER_USR : ROLE_ADMIN
하위롤은 상위롤이 접근할 수 있는 URL들을 접근할 수 있는 것으로..
상위롤이.. 권한이 더 많은 것이 아닙니다. (실제로 반대임)
추가로.. ROLE_USER_GNR은.. ROLE_ADMIN이 갖는 모든 권한을 갖는 것으로..
일반 사용자의 권한을 가져야 하는 경우라면.. ROLE_USER를 상위 롤로 지정하시면 됩니다.
그럼.. 즐거운 하루되십시오.
감사합니다.
우선.. PC용 로그인 문제는 로그 정보가 필요한 것 같습니다.
log4j.xml 상에.. 다음과 같이 org.springframework 패키지쪽 로그 level을 DEBUG로 변경해서.. 로그를 확인해 보십시오.. (추가 또는 level만 변경)
<logger name="org.springframework" additivity="false">
<level value="DEBUG" />
<appender-ref ref="console" />
</logger>
모바일과 PC용 사이트 분리는 프로젝트 상황에 맞게 결정을 하시면 됩니다.
다만, 기준을.. 동일한 서비스를 다른 채널로만 제공하는 것이나.. 별개의 서비스이나에 따라.. 분리 여부를 결정하시면 되실 것 같습니다.
(Service 및 DAO를 공유하기 위해서는 하나의 webapp에 2개의 DispatcherServlet으로 분리해야 함.. 이 때 sevlet-mapping 상에 *.do, *.mdo로 구분하거나.. URL 상의 앞부분으로 com, mbl로 구분하시면 되실 것 같습니다.)
마지막 권한은.. 계층 구조 상.. 기본적인 계층은 다음과 같습니다.
하위 롤(CHILD_ROLE) : 상위 롤(PARENT_ROLE)
IS_AUTHENTICATED_REMEMBERED : IS_AUTHENTICATED_ANONYMOUSLY
ROLE_RESTRICTED : IS_AUTHENTICATED_FULLY
ROLE_USER : ROLE_RESTRICTED
추가적으로 다음과 같이 작업하시면 되실 것 같습니다. (올려주신 정보에 의해 유추)
ROLE_USER_GNR : ROLE_ADMIN
ROLE_USER_ENT : ROLE_ADMIN
ROLE_USER_USR : ROLE_ADMIN
하위롤은 상위롤이 접근할 수 있는 URL들을 접근할 수 있는 것으로..
상위롤이.. 권한이 더 많은 것이 아닙니다. (실제로 반대임)
추가로.. ROLE_USER_GNR은.. ROLE_ADMIN이 갖는 모든 권한을 갖는 것으로..
일반 사용자의 권한을 가져야 하는 경우라면.. ROLE_USER를 상위 롤로 지정하시면 됩니다.
그럼.. 즐거운 하루되십시오.
감사합니다.