`
yoyox
  • 浏览: 19154 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
社区版块
存档分类
最新评论
  • every: 你好 请问你怎么安装2008 ad 的ssl
    Active Directory Ssl
  • lmw0827: 使用ssl更改用户密码: 这一个能说的详细点吗?如何将证书加入 ...
    Active Directory Ssl
  • yunmoxue: oyhf521 写道NewTamato 写道你这个问题现在解决 ...
    FLEX
  • oyhf521: NewTamato 写道你这个问题现在解决了吗?你这个疑问很明 ...
    FLEX
  • NewTamato: 你这个问题现在解决了吗?你这个疑问很明显就是没有仔细研究过Fl ...
    FLEX

WEB容器用户认证

阅读更多
在GlassFish中为Web应用程序设置用户访问权限
2008-09-22 15:25:40
查看( 606 ) / 评论( 0 )

作者:Yuanxin Li   Email:Yuan-Xin.Li@sun.com

本文介绍如何利用GlassFish服务器的安全用户认证特性为Web应用程序设置用户访问权限。在实际应用中,我们可能会把用户、权限、角色之类的写在数据库中,用程序加以控制,也可能会用到Spring AOP的Interceptor来拦截非法访问,但是可能会存在一个问题,如果将超级管理员的用户名和密码写在数据库,万一不小心把超级管理员的用户或角色删掉,怎么办?因此让应用服务器来托管管理员(或其他特殊角色),不但可以避免这个问题,而且也简化了应用程序的用户权限控制(你不必因为害怕普通用户非法访问管理员的访问域而费尽心思使用代码或AOP来控制),而且GlassFish应用服务器在安全性方面很有保证,大大提高了应用程序的安全性。

实验环境:
1、Netbeans 6.1中文版,JDK1.6以上
2、GlassFish V2或Sun Application Server

实验步骤:
1、创建Web应用程序,命名为WebApplicationSecurity,在创建过程中保持默认选项即可,不需要选择其他框架。

2、在WEB页 目录下创建两个文件夹(新建-其他-其他-文件夹),分别命名为secureAdmin和secureUser,一个是管理员的访问域,一个是普通用户的访问域。接下来将严格控制管理员和普通用户的访问权限,普通用户只能访问secureUser目录下的页面,而管理员则两个都可以访问。

3、在secureAdmin目录下创建一个名为pageA的HTML文件,内容如下:

<html>
   <head>
      <title>管理员安全域</title>
   </head>
   <body>
      <h1>管理员安全域</h1>
   </body>
</html>

同样的,在secureUser下创建一个名为pageU的HTML文件,内容为:

<html>
   <head>
      <title>普通用户安全域</title>
   </head>
   <body>
      <h1>普通用户安全域</h1>
   </body>
</html>

4、在WEB页目录下创建主页index.jsp,将<body>标签中的内容覆盖为:

        <p>访问管理员页面:<a href="secureAdmin/pageA.html">这里!</a></p>
        <p>访问普通用户页面:<a href="secureUser/pageU.html" >这里!</a></p>

5、在GlassFish中添加用户权限。

     首先,展开服务-服务器,选择GlassFish V2,右键-启动。(如果没看到有GlassFish,请安装后点击“添加”)。

     然后,打开浏览器,输入网址http://localhost:4848访问GlassFish的管理员平台,默认用户是admin,密码是adminadmin。

     接下来,展开 配置-安全性-领域,选择file,如下图所示:

  

    在主窗口打开的页面中,点击“管理用户”按钮,进入用户管理页面,点击新建,创建一个管理员用户,用户名为admin,密码也是admin,如下图所示:

同样地,创建一个用户user,密码是user。创建完毕后如下图所示:



至此,GlassFish下的用户权限已经配置完毕,接下来,我们需要在应用程序的配置文件中添加一些配置来使用这两个用户。

6、打开WEB-INF目录下的web.xml,点击“安全”选项卡,展开“登陆配置”,选择“基本”,在“域名称”中填入 file,如下图所示:

展开“安全角色”,点击“添加”,“角色名称”中填入Admin,同样的方法,添加一个角色名称为User的角色,如下图所示:

在 “安全约束”选项下,点击“添加安全约束”,“显示名称”中填入AdminConstraint,在“Web资源集合”选项下点击“添加”,“资源名称” 为Admin,URL模式为“/secureAdmin/*”,表示Admin这个资源集合映射到secureAdmin下的任何页面,如下图所示:

选中“启用验证约束”,编辑“角色名称”,将Admin添加到右边的框中,如下图所示:

完成如下:





同样,创建一个显示名为UserConstraint的安全约束,资源集合中的资源名称为User,URL模式为/secureUser/*。注意角色名称应该Admin和User都选择(管理员和普通用户均可进入)。如下图所示:



7、最后,在sun-web.xml中添加WEB应用定义的安全资源与GlassFish上的用户的映射。打开WEB-INF下的sun-web.xml,点击“安全”选项卡,点击“添加安全角色映射”,在“安全角色名”中填入Admin,添加主要用户,主要用户名称为admin。同样,创建一个名为User 的安全角色,并添加主要用户名为user的主要用户,如下图所示:

8、部署,运行项目,如下图所示:

点击管理员页面,如下图所示:

如果你使用的是IE浏览器,会这样:

如果用admin来登陆,将跳转到pageA页面,如果用user来登陆,则遭到拦截:

如果你不希望使用“基本认证”来接受用户输入,你也可以自己写一个表单来接受用户输入:

         <form. action="j_security_check" method="POST">
            Username:<input type="text" name="j_username"><br>
            Password:<input type="password" name="j_password">
            <input type="submit" value="Login">
        </form>

在web.xml的安全选项中的登陆配置里选中“窗体”,然后选择登陆页面和登陆错误的页面即可。

Demo来源:http://www.netbeans.org/kb/60/web/security-webapps.html#Basic_login_config



2009-04-30
glassfish中配置JDBCRealm
关键字: glassfish realm

A、设置数据库(数据库以SQL SERVER2005为例)

1、安装SQL SERVER 2005

2、安装JDBC驱动 可以到微软下载

3、把驱动放入<glassfish安装目录>\domains\<你自己的域>\LIB\EXT\ 目录下

4、给服务器添加驱动

点属性----》

点添加 JAR/文件夹---》找到所需的SQL驱动就可以了

B、设置数据库资源池

1、进入glassfish安装目录

2、CTRL+F

3、搜索MICROSOFT(其实很多的样板配置可以在这里找到)

4、在NETBEANS中打开是下面这个模样

已经说过了 ,上面的只是样板,告诉你配置对应的数据库需要配置什么内容而已,不同的数据库可以在该文件对应的目录下找到配置样板

接下来就进入服务器的控制台了

5、你可以通过直接在浏览器中键入http://localhost:4848登陆,也可以在第一张图片上点击“查看管理控制台”菜单进入,当然这个需要帐号密码,对于glassfish-v2的帐号与默认密码分别是admin与adminadmin

6、登陆后进入资源

7、真正开始配置连接池了

8、上面填好了点Next按钮

9、完成下面的内容

10、配置好后看能不能PING通,重新打开它,点PING钮,看是否PING通

PING通就继续下面的内容





C、设置JDBC RESOURCES

这个内容比较简单

数据库部分的配置已经完成了,接着配置JDBC域

D、配置JDBC REALM

1、配置安全映射,否则因为缺少principle而出现验证后403错误

接着就是内容了:

点击 Save以保存

E、准备好登陆页面与错误页面

登陆页面的要求是具有action="j_security_check" form,用户名的输入框 的 name="j_username" ,密码框的name="j_password",当然还需要个提交按钮,我们把它起名为login.html(或者其它页面形式,只要满足上面的条件就可以了)

把他们放到应用的web目录中

F、配置web.xml

保存

配置完成

分享到:
评论

相关推荐

    jaas资料 基于JAAS和J2EE Web容器的验证与授权

    - **认证**:Web容器可以使用 JAAS 进行用户认证,同时也可以利用 HTTP Basic Auth 或 Form-Based Auth 等标准认证机制。 - **授权**:Web容器支持基于角色的访问控制 (RBAC),可以根据用户的角色自动分配权限。 ...

    SUN web组件开发认证教程

    6. **Web容器**:Web容器(如Tomcat、Jetty)是运行Web组件的软件环境,它们负责创建、初始化、调度和销毁Servlet实例,同时处理与客户端的网络通信。 学习SUN Web组件开发认证教程,开发者不仅需要理解上述概念和...

    web容器tomcat7.0

    【标题】:Web容器Tomcat 7.0详解 【描述】:Apache Tomcat是一款开源且免费的Web应用服务器,特别适用于运行Java Servlet和JavaServer Pages(JSP)技术。Tomcat 7.0版本是它的一个重要里程碑,提供了一系列增强...

    tomcat WEB容器

    【标题】:“Tomcat WEB容器” 【描述】:“Apache Tomcat 6.0.18是Web应用程序容器,它是开源软件,用于部署和运行Java Servlets和JavaServer Pages(JSP)。作为Java EE的一部分,Tomcat实现了Servlet和JSP规范,...

    Java Web 最新认证

    9. **Web容器**:Tomcat、Jetty等Web容器是运行Java Web应用的平台。了解它们的工作原理、部署和配置是必要的。 10. **RESTful API设计**:随着前后端分离趋势的发展,设计和实现RESTful接口成为现代Web应用的必备...

    web容器 weblogic 12c tomcat 7安装包.rar

    4. **安全性增强**:增加了对最新SSL/TLS协议的支持,以及更好的用户认证和授权机制。 5. **配置简化**:通过改进配置文件,使得配置过程更为直观和简洁。 【文件列表】: 1. `apache-tomcat-7.0.82.tar.gz`:这是...

    HTTP认证及其在Web平台中的实现.pdf

    在Web平台中实现HTTP认证时,通常需要处理各种Web容器(如Tomcat、Jetty)的不同API。ZX Web平台工具包提供了一组统一的API,使开发者能够方便地在不同容器上实现认证,而无需关心底层实现的差异。开发人员可以利用...

    Java 2 Web 开发认证学

    7. **Web容器**:如Tomcat、Jetty等,它们为Servlet和JSP提供运行环境,管理应用的部署和生命周期。 8. **数据库连接与JDBC**:理解如何使用JDBC API进行数据库连接、查询、更新和事务处理。 9. **EJB(Enterprise...

    tomcat 用户认证--域

    在IT领域,尤其是在Web服务器管理中,Tomcat的用户认证和授权是确保系统安全的关键环节。Tomcat是一个流行的开源Java Servlet容器,它提供了内置的安全功能,包括用户认证和授权,这些功能是通过“域”这一概念来...

    Tomcat容器

    总而言之,Tomcat作为一款广泛使用的Java Web容器,其简洁的架构、高效的性能和灵活的配置,使其成为了开发者们的首选工具。无论是在学习Java Web开发还是在构建实际项目中,掌握Tomcat的使用和配置都是至关重要的...

    基于容器的用户安全管理系统

    综上所述,基于容器的用户安全管理系统是解决复杂权限管理问题的有效方案,尤其在中大型分布式系统中,它能够提供统一的用户认证和授权机制,提高系统的安全性和可维护性。通过理解RBAC模型和J2EE容器的特性,开发者...

    Servlet会话管理与用户认证.doc

    Servlet会话管理和用户认证是Web开发中的核心概念,主要用于跟踪用户状态和确保用户身份的安全性。在Java Servlet中,这两个概念通常通过HttpSession接口和Cookie技术来实现。 首先,我们来看一下Servlet会话管理。...

    Web application security

    Web容器在检测到未认证用户试图访问受保护资源时,会自动请求用户进行身份验证。一旦用户通过了身份验证,Web容器和/或Web组件会执行访问控制,确保只有具有适当权限的用户才能访问特定资源。 #### 数据保护 为...

    一个简单的servlet容器

    当用户首次访问Web应用时,容器会创建一个Session,并分配一个唯一的ID,这个ID被发送给客户端,客户端在后续的请求中携带此ID以便容器识别会话。 6. **资源隔离**:为了确保Web应用之间的资源隔离,每个Web应用都...

    JAAS认证(mac版tomcat)

    Java Authentication and Authorization Service (JAAS) 是Java平台的核心组件,用于提供安全的用户认证和权限管理。在Mac版Tomcat中配置JAAS,可以确保只有经过验证的用户才能访问Web应用程序,从而增强系统的安全...

    基于web的银行管理系统

    开发者可能采用HTTPS协议确保数据传输的安全,使用Spring Security或Apache Shiro等框架实现用户认证和授权,防止未授权访问和攻击。 8. **异常处理**:为了提供良好的用户体验和系统稳定性,需要对可能出现的错误...

    博客网站简单Web项目

    7. 用户认证与授权:博客网站通常需要用户注册和登录功能,这就涉及到用户认证和授权。可能通过session或者cookie来跟踪用户状态,实现登录状态的保持。 8. 模板引擎:虽然JSP可以用于视图渲染,但为了提高可维护性...

    Asp.net Core中实现自定义身份认证的示例代码

    在Startup.cs文件中,需要配置服务,将你的自定义认证方案添加到服务容器中,并配置相应的选项。 5. 使用[Authorize]属性指定需要认证的控制器或动作方法: 通过在控制器或动作方法上使用[Authorize]属性,你可以...

    web_学生信息系统网站_

    总结,"Web_学生信息系统网站_" 涉及的技术栈广泛,涵盖了Web开发的基本元素、后端编程、数据库管理、用户认证、API设计、前端交互以及项目部署等多个方面。开发者可以通过修改源代码来定制功能,满足特定需求。

Global site tag (gtag.js) - Google Analytics