最新版本号: 1.0.230
2.2 编程式安全
V-Security安全框架中和编程式安全相关的类是org.vivianj.web.security.util.PageSecurity,它有两个静态方法:getUserPrincipal和isUserInRole。
。调用isUserInRole方法可以判断当前登录用户是否是名为”roleName”的角色,如果是,返回true,否则返回false。
。调用getUserPrincipal可以获得当前登录用户的用户名。
清单4-7 中是一个使用编程式安全的JSP例子,我们在Servlet中同样可以使用这两个方法实现安全。
清单4-7 undersecurity/programmatic/c.jsp
1.
<%@ page language="java"
contentType="text/html;charset=gb2312" %>
2. <@ page import="org.vivianj.web.security.util.PageSecurity"
%>
3 <html>
4.
<head>
5. <title>V-Security代码级安全示例页</title>
6.
<style type="text/css">
7.
td {
8.
font-size:
14px;
9.
}
10. .title1 {
11. font-size:
14px;
12. color: #00000;
13. }
14.
-->
15.
</style>
16.
<link href="css/screen.css" rel="stylesheet"
type="text/css">
17.
<style type="text/css">
18.
<!--
19.
.STYLE3 {color: #FF0000}
20.
-->
21.
</style>
22.
</head>
23.
<body>
24.
25.
<table width="400" border="0"
align="center" cellpadding="5" cellspacing="0">
26.
<tr>
27.
<td align="center"
valign="middle" bgcolor="#BCC9FC"><h2>V-Securit代码级安全示例页</h2></td>
28.
</tr>
29.
<tr>
30.
<td bgcolor="#DBE1FD">
31.
<br>
32.
<br>
33.
本示例页基于代码级安全保护只有角色为"roleA的用户才有权访问.<br>
34.
<br>
35.
使用判断代码片断如下:<br>
36.
<%
if (PageSecurity.isUserInRole(request,"roleA"))
{ ><br>
37.
<%
out.println("我的角色是'roleA'"); ><br>
38.
<% }
><br>
39.
40.
<%
if (PageSecurity.isUserInRole(request,"roleA"))
{ %>
41.
<center><font color="red"><%
out.println(我的角色是'roleA'"); %></a></center>
42.
<% } %>
43.
<br>
44.
</td>
45.
</tr>
46.
<tr>
47.
<td bgcolor="#EFF1FE"><br>
48.
<br>
49.
示例页基于代码级安全保护,只有角色为"roleB的用户才有权访问.<br>
50.
<br>
51.
所使用判断代码片断如下:<br>
52.
<% if
(PageSecurity.isUserInRole(request,"roleB"))
{ ><br>
53.
<% out.println(我的角色是'roleB'");
><br>
54.
<%
} ><br>
55.
56.
<%
if (PageSecurity.isUserInRole(request,"roleB"))
{ %>
57.
<center><font color="red"><%
out.println(我的角色是'roleB'"); %></center></font>
58.
<% } %>
59.
<br> </td>
60.
</tr>
61.
62.
</table>
63.
64.
</body>
65.
</html>
|