Form-based security với Tomcat users
Như ở bài Form-based security in servlet tôi đã hướng dẫn bạn cách logon sử dụng form nhưng lấy user từ database. Ở bài này tôi sẽ hướng dẫn bạn cách logon nhưng sử dụng user từ Tomcat web server.
Tomcat user được tìm thấy trong tập tin %TOMCAT_HOME%\conf\tomcat-users.xml. Sau đâu là 1 ví dụ về nội dung của file này:
<?xml version='1.0' encoding='utf-8'?> <tomcat-users> <role rolename="manager"/> <role rolename="tomcat"/> <role rolename="standard"/> <role rolename="admin"/> <role rolename="employee"/> <user username="ty" password="ty" roles="employee"/> <user username="teo" password="teo" roles="employee,manager"/> <user username="admin" password="admin" roles="standard,manager,admin"/> <user username="wsitUser" password="changeit" roles="tomcat"/> </tomcat-users> |
Để làm điều này rất đơn giản bằng cách khi bạn tạo form logon bạn đặt tên cho action và các text theo tên chuẩn được qui định bởi tomcat là xong. Cụ thể như sau:
| <form method=”POST” action=”j_security_check“>Enter the username:<input type=”text” name=”j_username” >
Enter the password:<input type=”password” name=”j_password”> <input type=”submit” value=”Submit”> </form> |
Bạn sẽ phải cấu hình constraint cho các tài nguyen cần thiết phải bảo vệ
<security-constraint>
<web-resource-collection>
<web-resource-name>JSP database component</web-resource-name>
<url-pattern>/admin/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/login.html</form-login-page>
<form-error-page>/loginError.html</form-error-page>
</form-login-config>
</login-config>
|
Như vậy khi bạn vào bất kỳ trang nào trong thư mục admin thì bạn cần phải đăng nhập và username cũng như password sẽ được lấy trong tomcat user.
Chúc thành công!