1

저는 웹 응용 프로그램 개발과 보안에 신기하며 주위의 것들을 이해하려고합니다.웹 컨테이너는 사용자의 역할을 어떻게 알 수 있습니까?

어디에서나 보안을 구현하려는 웹 응용 프로그램에 declarative 보안을 요청합니다. 예를 들어 바람둥이에서는 다음과 같이 tomcat-user.xml 파일에서 역할을 선언 할 수 있습니다.

<tomcat-users> 
<user name="tomcat" password="s3cret" roles="manager-gui" /> 
</tomcat-users> 

이 부분은 이해할 수 있습니다.

이제 웹 앱에 이러한 역할 중 일부를 추가했다고 가정합니다. 이제 내 web-app 사용자가 내 web-app의 일부 리소스를 요청합니다. 내가 알고 싶습니다 은 컨테이너 또는 사용자가 어떤 역할을 사용자가 요청했는지 알 수 있습니까??

감사합니다. 톰캣과 JSP를 사용하여

답변

1

:

DataSourceRealm는 사용자 및 사용자 역할 테이블을 포함하는 데이터베이스를 가리 수 있지만, (바람둥이-users.xml 파일에 포인트) 한 UserDatabaseRealm을 사용하여도 잘 작동합니다. 특정 폴더에있는 모든 JSP 페이지를 보호하려는 경우 사용자가 페이지를 입력시 특정 역할이 있는지 알고 싶다면

, 당신이 할 수있는, 당신의 web.xml

<security-constraint> 
<web-resource-collection> 
    <web-resource-name>Folder Description</web-resource-name> 
    <url-pattern>/foldername/*</url-pattern> 
</web-resource-collection> 
<auth-constraint> 
    <role-name>ROLE_ADMIN</role-name> 
</auth-constraint> 
</security-constraint> 

이 추가 사용

boolean hasAdminRole = request.isUserInRole("ROLE_ADMIN");