2015-01-07 3 views
2

저는 서블릿과 JPA를 사용하여 웹 애플리케이션을 만들고 있습니다. 사용자 이름, 암호 및 역할을 저장하는 사용자 테이블이 있습니다. 특정 사용자가 일부 콘텐츠에 액세스 할 수 있도록 이러한 사용자의 로그인 및 사용자 등록 기능을 만들고 싶습니다. Servlet 사양과 내가 사용하는 컨테이너 인 Tomcat을 준비하면서 사용자의 역할과 시스템의 역할을 정의하는 두 가지 방법을 모색했습니다.컨테이너 대 서블릿 인증

Tomcat 사양에서는 Realms를 사용하여 다른 데이터베이스에 연결할 수 있으므로 원하는 경우 SSO를 사용할 수 있다고 제안합니다. 서블릿은 기본 인증과 같은 web.xml을 사용하여 사용자와 역할을 정의하는 고유 한 방식을 가지고 있으며, 서블릿 컨테이너는 Realms를 사용합니다.

하지만 서블릿과 컨테이너에서 사용자와 역할을 만드는 것은 시스템 관리자가 수행하는 것으로 보입니다. 내가 찾고있는 것은 자기 등록이다.

위의 질문은 이러한 접근 방식에 대한 혼란을 강조하며, 진행하려는 방식이 정확하거나 안전한지 여부를 알지 못합니다. 누군가 이러한 인증 방법의 차이점을 설명 할 수 있습니까? 왜 다른 하나를 선택합니까? 자기 등록을 J2E 모델에 좋지 않거나 안전하지 않을 계획입니까?

답변

0

사용자와 역할이 혼동 스럽다고 생각합니다. web.xml에서 "/ admin에 대한 모든 요청에는 관리자 역할이 있어야합니다"와 같이 역할을 자원에 연결해야합니다. 그런 다음 관리 도구 아래에 사용자를 만들고 해당 사용자에게 적절한 역할을 할당합니다.

1

데이터베이스에 사용자 ID와 암호 및 역할을 저장하고 이에 대한 사용자 입력의 유효성을 검사하면 그 이후로 스스로 결정됩니다. 그 의미는 나중에 특정 사용자 역할 집합에 대한 특정 콘텐츠에 대한 액세스를 제한하려는 경우 사용자에 대해 db 테이블에 저장된 역할을 조회하고 사용자를 허용/제한하는 코드를 작성해야합니다 .

그러나 사용자를 기본 컨테이너로 '밀어 넣으면'컨테이너는 응용 프로그램을 대신하여 대부분의 물건을 수행 할 수 있습니다 (즉, 영역 및 역할 등에 관한 항목이 들어옵니다). 이것을 이해하는 좋은 출발점은 JAAS

에 대한 설명서를 읽는 것입니다.
관련 문제