Spring_Boot개발자
303
2019-06-26 00:05:39
6
378

스프링 초보 개발자입니다.


스프링 초보 개발자입니다.


관리자 페이지로 모든 것으 만들다가 그만...

문제점을 발견해서요


유저 페이지도 따로 만들어야 하는데, 

user 테이블에 권한 컬럼을 두고 이 권한에 따른 로그인을 다르게 주고 싶은데요..


혹시 시큐리티로 /Login 페이지에서  1. admin  / 2. User 페이지로 할 수 있는지... 알고 싶습니다.


또한 시큐리티 아녀도 다른 방법이 있는지요..

0
0
  • 답변 6

  • minarai
    2k
    2019-06-26 00:10:32

    시큐리티 + 인터셉터

    1
  • Frudy
    3k
    2019-06-26 03:51:20

    방법이야 많다고 생각해요

    전 시큐리티안쓰고

    이렇게하면 이런 근거로 괜찮겠지 싶게

    구현을 했었거든요.

    1
  • JohnMark
    419
    2019-06-26 08:29:37

    Spring Security 를 사용하셔서 UserDetailsImpl 를 구현하시고 로그인 검증 단계를 거쳐서 권한 칼럼을 기준으로 권한을 설정하신다음, 권한에 따라 사용자 페이지로 접속 또는 관리자 페이지로 접속하도록 분기하셔도 괜찮을 것 같기도 합니다.

    Spring Security 참고: https://sjh836.tistory.com/165

    하지만 Spring Security를 안쓰셔도 구현은 가능합니다. 비즈니스 로직으로 분기태우시면 돼요
    (어드민 로그인 페이지, 일반 유저 로그인 페이지 or 단일 로그인 페이지로 로그인 후, 세션 또는 토큰에 유저 권한을 저장 -> 어드민 페이지 접속 요청시 서비스 단에서 권한 확인 후 요청 처리)

    2
  • BumYokan
    640
    2019-06-26 09:15:09 작성 2019-06-26 09:20:39 수정됨

    전 DB에 레벨을 설정해두고 1이면 유저 지정숫자는 어드민 이렇게 두고

    로그인시 같은 쿼리로 불러오게 해뒀습니다.

    회원가입할때 유저는 레벨1로 가입하게 지정해두고

    어드민계정은 직접 쿼리를 쏴주면서 제작하고있습니다.


    이게 편한게

    거대쇼핑몰 같은 경우에

    1은 유저 2는 판매자 등등 여러가지 두고

    레벨이 어드민인 경우에는 모든곳에 들어갈 권한이나

    따로 보여주는 그런것 설정했습니다...만

    해킹 위협이 있는지는 잘 모르겠네요


    번호가 뚫려도 2차 3차 방어도 해두긴 했습니다만...


    저것 후에 인터셉터 사용해서 레벨에 맞는곳에 들어가는게 아니라면

    막아주고 이런식으로 했네요

    1
  • minarai
    2k
    2019-06-26 09:44:19

    DB에 유저 레벨 둔다음에 로그인하면서 같이 데이터 가져오고 세션에 저장하는 방법도 있겠네욤...


    관리자 페이지면 관리자레벨 아니면 아무도 열람 못하게 하거나..

    0
  • Spring_Boot개발자
    303
    2019-06-28 10:27:56

    답변이 늦었습니다. 


    답변 해주셔서 감사합니다.

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.