捕风之巢

统计

留言簿(3)

java友情链接

阅读排行榜

评论排行榜

创建安全的web应用程序

为了保证web应用程序的安全,应该对登录的用户进行身份验证。在WebLogic Server中进行web应用程序的身份验证有两种方式:
1.基本验证方式(Basic Authentication)
2.表单验证方式(Form Authentication)
基本验证方式比较简单,而表单验证方式可以提供自定义的登录页面和出错处理页面。
1.基本验证方式(Basic Authentication)
 采用这种验证方式的web应用程序,用户访问时首先会弹出一个登录界面要求用户输入用户名和密码,然后查看此用户是否在web应用中定义的安全角色中。
 开发一个以基本验证方式进行身份验证的web应用程序的基本步骤如下。
 (1)在web应用程序的描述符web.xml中做如下声明:

  < security-role >
  
< role-name > webuser </ role-name >
 
</ security-role >


指定验证方式为基本验证方式:用<login-config>定义。例如:

< login-config >
  
< auth-method > BASIC </ auth-method >
  
< realm-name > default </ realm-name >
 
</ login-config >

定义被保护的资源,例如下面这段声明指明了只有角色webuser才能访问被保护的资源:

< security-constraint >
 
< web-resource-collection >
  
< web-resource-name > Success </ web-resource-name >
  
< url-pattern > /welcome.jsp </ url-pattern >
   
< http-method > GET </ http-method >
   
< http-method > POST </ http-method >
 
</ web-resource-collection >
 
< auth-constraint >
  
< role-name > webuser </ role-name >
 
</ auth-constraint >
 
</ security-constraint >


(2)在weblogic.xml文件中定义安全角色到weblogic server中用户或用户组的映射。即指定weblogic server中的哪些实体属于安全角色。例如下面这段声明将weblogic server中的实体myGroup映射到安全角色webUser:

< weblogic-web-app >
 
< security-role-assignment >
  
< role-name > webuser </ role-name >
  
< principal-name > myGroup </ principal-name >
 
</ security-role-assignment >
</ weblogic-web-app >


 下面时完整的相关页面:
 web.xml文件
 
 

< web-app >
 
< welcome-file-list >
  
< welcome-file > welcome.jsp </ welcome >
 
</ welcome-file-list >
 
< security-constraint >
 
< web-resource-collection >
  
< web-resource-name > Success </ web-resource-name >
  
< url-pattern > /welcome.jsp </ url-pattern >
   
< http-method > GET </ http-method >
   
< http-method > POST </ http-method >
 
</ web-resource-collection >
 
< auth-constraint >
  
< role-name > webuser </ role-name >
 
</ auth-constraint >
 
</ security-constraint >
 
< login-config >
  
< auth-method > BASIC </ auth-method >
  
< realm-name > default </ realm-name >
 
</ login-config >
 
< security-role >
  
< role-name > webuser </ role-name >
 
</ security-role >
</ web-app >

weblogic.xml文件

< weblogic-web-app >
 
< security-role-assignment >
  
< role-name > webuser </ role-name >
  
< principal-name > myGroup </ principal-name >
 
</ security-role-assignment >
</ weblogic-web-app >

 

welcome.jsp文件

< html >
 
< head >
  
< title > Browser Based Authentication Example Welcome Page </ title >
 
</ head >
 
< body >
 
< h1 > Browser Based Authentication Example Welcome Page </ h1 >
 
< p > Welcome <% = request.getRemoteUser() %>
 
</ body >
</ html >

2.表单验证方式
使用表单验证方式进行web应用程序的身份验证,需要开发者定义一个登录页面和登录失败的错误处理页面。登录页面可以时html、jsp或servlet。使用这种验证方式的好处时可以对程序有更进一步的控制。登录页面应该让用户输入用户名和密码,错误处理页面应该将验证失败的信息反馈给用户。开发使用表单验证方式的web应用程序的基本步骤如下。
(1)编写登录页面和错误处理页面,在web应用程序的欢迎页面中加入到登录页面的超级链接,提示用户首先进行登录。登录页面举例:


< form  method ="POST"  action ="j_security_check" >
   
< input  type ="text"  name ="j_username" >
   
< input  type ="text"  name ="j_password" >
   
< input  type ="submit"  value ="Log in" >
</ form >

(2)配置web.xml

< web-app >
< welcome-file-list >
  
< welcome-file > welcome.jsp </ welcome >
 
</ welcome-file-list >
< login-config >
   
< auth-method > FORM </ auth-method >
   
< realm-name > Web Demo </ realm-name >
   
< form-login-config >
      
< form-login-page > /admin/login.jsp </ form-login-page >
      
< form-error-page > /admin/error.jsp </ form-error-page >
   
</ form-login-config >
</ login-config >
< security-role >
  
< role-name > webuser </ role-name >
</ security-role >
< security-constraint >
 
< web-resource-collection >
  
< web-resource-name > Success </ web-resource-name >
  
< url-pattern > /welcome.jsp </ url-pattern >
   
< http-method > GET </ http-method >
   
< http-method > POST </ http-method >
 
</ web-resource-collection >
 
< auth-constraint >
  
< role-name > webuser </ role-name >
 
</ auth-constraint >
</ security-constraint >
< security-constraint >
 
< web-resource-collection >
  
< web-resource-name > login </ web-resource-name >
  
< url-pattern > /login2.jsp </ url-pattern >
   
< http-method > GET </ http-method >
   
< http-method > POST </ http-method >
 
</ web-resource-collection >
 
< auth-constraint >
  
< role-name > webuser </ role-name >
 
</ auth-constraint >
</ security-constraint >
</ web-app >

(3)在weblogic.xml文件中定义安全角色到weblogic server中实体(用户或用户组)的映射。例如:

< weblogic-web-app >
 
< security-role-assignment >
  
< role-name > webuser </ role-name >
  
< principal-name > myGroup </ principal-name >
 
</ security-role-assignment >
</ weblogic-web-app >

posted on 2006-10-11 10:50 捕风 阅读(468) 评论(0)  编辑  收藏 所属分类: web开发


只有注册用户登录后才能发表评论。


网站导航: