authentication by spring security on spring3 richfaces4 jsf2
สิ่งสำคัญในของหน้าที่ authorization คือ การให้สิทธิ ที่ไม่เท่าเทียมกันของ ผู้เข้ามาใช้ระบบ ซึ่ง บางคนสามารถทำการสร้างลบข้อมูลได้ ส่วนบางคน ควรจะมีหน้าที่ดู เพื่อรับข้อมูลอย่างเดียว เป็นต้น
ในที่นี้ ต่อจากหน้า login.xhtml ในคราวที่แล้ว ให้เราสร้างหน้า home.xhtml ขึ้นมา
== home.xhtml ==
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:sec="http://www.springframework.org/security/facelets/tags">
status :
<sec:isAnonymous > anonymous user -_- </sec:isAnonymous >
<sec:isAuthenticated > authenticate user ^_^ </sec:isAuthenticated >
role :
<sec:ifNotGranted roles="ROLE_ADMIN">not admin</sec:ifNotGranted >
<sec:ifAnyGranted roles="ROLE_ADMIN">admin</sec:ifAnyGranted >
<sec:ifAllGranted roles="ROLE_ADMIN, ROLE_USER">both role (user, admin)</sec:ifAllGranted >
</html>
ในส่วนนี้เป็นตัวอย่างง่าย ๆ คือ เราต้องประกาศ
xmlns:sec="http://www.springframework.org/security/facelets/tags"
ขึ้นมาก่อน เพื่อใช้ tag ในการทำเรื่อง authorization ได้
หลังจากนั้น เราก็ใช้งาน หลักการง่าย ๆ คือ ถ้า roles ที่กำหนดไว้ ตรงกับ ชื่อ sec:? นั้น ก็จะทำการแสดงข้อความที่อยู่ด้านใน tag sec:? นั้นๆ ได้ โดยในที่นี้ ลองดูมีอยู่ 5 tag ได้แก่
<sec:isAnonymous />
ใช้เพื่อถามว่าเป็น บุคคลทั่วไป หรือเปล่า
<sec:isAuthenticated />
ใช้เพื่อถามว่าเป็น บุคคลในระบบ หรือเปล่า
<sec:ifAllGranted roles="?" />
ใช้เพื่อถามว่าเป็น บุคคลที่อยู่ในตำแหน่งต่าง ๆ เหล่านี้ทั้งหมดหรือเปล่า
<sec:ifNotGranted roles="?" />
ใช้เพื่อถามว่าเป็น บุคคลที่ไม่ได้อยู่ในตำแหน่งต่าง ๆ เหล่านี้ทั้งหมดหรือเปล่า
<sec:ifAnyGranted roles="?" />
ใช้เพื่อถามว่าเป็น บุคคลที่อยู่ในตำแหน่งใดตำแหน่งหนึ่ง ในที่นี้หรือเปล่า
ไม่มีความคิดเห็น:
แสดงความคิดเห็น