Võ Văn Hải's blog

Chỉ có một điều tuyệt đối đó là mọi thứ đều tương đối…

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!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: