`
tenderuser
  • 浏览: 61343 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

在tomcat中使用Realm

    博客分类:
  • java
阅读更多

1、配置JDBC Realm,
在tomcat的server.xml文件中,配置自己的JDBC Realm,tomcat 提供了六种Realm实现,这里使用JDBC Realm 演示。
 <Realm  className="org.apache.catalina.realm.JDBCRealm"
             driverName="org.gjt.mm.mysql.Driver"
          connectionURL="jdbc:mysql://localhost/std"
         connectionName="root" connectionPassword="root"
              userTable="users" userNameCol="user_name" userCredCol="user_pass"
          userRoleTable="user_roles" roleNameCol="user_role" />

 
Realm标签可以放在Engine标签中,这是该Realm会被所有应用共享。 放在Host中,会被该Host下的应用程序共享。放在Context中,则只有对应的应用程序能被访问。
引用

className :tomcat 的JDBCRealm实现类,
driverName: JDBC Driver (JDBC Driver jar 需要放在Tomcat's common/lib 目录下)
connectionURL: 数据库连接地址,表名为std
connectionName:数据库登录用户
connectionPassword:数据库登录密码
userTable: 用户表的表名
userNameCol:用户表中用户列的列名
userCredCol:用户表中密码列的列名
userRoleTable:角色表的表名
roleNameCol: 角色表中的角色列


对于上面配置的Realm,对应的数据库表如下:
	CREATE TABLE `users` (
	`user_name` varchar(20) NOT NULL,
	`user_pass` varchar(20) DEFAULT NULL
	) ENGINE=InnoDB DEFAULT CHARSET=utf8;

	CREATE TABLE `user_roles` (
	`user_name` varchar(20) NOT NULL,
	`user_role` varchar(20) NOT NULL,
	PRIMARY KEY (`user_name`,`user_role`)
	) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2、配置认证资源
配置角色,在web.xml中,使用security-role标签来定义角色,如下所示
	<security-role>
		<role-name>ADMIN</role-name>
	</security-role>
	<security-role>
		<role-name>USER</role-name>
	</security-role>

配置资源约束,在web.xml中,使用security-constraint标签定义,如下所示,指定了对资源/admin/* 的访问需要认证,只有角色是ADMIN的用户才能访问
	
	<security-constraint>
		<web-resource-collection>
			<web-resource-name>adminDir</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>

配置认证方式 ,在web.xml中使用login-config标签配置认证方式。如下所示,当访问需要认证的资源时,servlet会检查对应的请求是否需要认证,如果不需要,则允许访问,如果没有认证通过,则会转到/admin/login.jsp页面定义的认证入口,填写认证信息。
当认证失败时,会转到/admin/error.jsp页面中。
	
	<login-config>
		<auth-method>FORM</auth-method>
		<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>

对于auth-method,可以指定认证的方式为,BASIC、DIGEST、CLIENT-CERT、FORM 。其中FORM允许自定义登录界面,对于FORM自定义的登录表单,action、用户名、密码都要用统一的名字:
	<form action="j_security_check" method="post">
		<table>
			<tr><td>user :</td><td><input name="j_username" type="text"></td></tr>
			<tr><td>pass :</td><td><input name="j_password" type="password"></td></tr>
			<tr><td><input type="submit"/></td></tr>
		</table>
	</form>


通过以上的配置,Request中也就保存了用户的认证信息了,在系统的其他地方,可以通过Request.isUserInRole方法,判断用户的角色。。。。





分享到:
评论
2 楼 zhou363667565 2012-01-10  
写的很不错。很详细。
1 楼 zhuchao_ko 2011-12-19  

相关推荐

    tomcat中文帮助文档

    在命令行中,你也可以通过` catalina.sh run`或`catalina.bat run`命令启动Tomcat并保持控制台输出。 4. **部署Web应用** 可以通过将WAR文件拷贝到`webapps`目录,或者在`conf/server.xml`中添加`&lt;Host&gt;`和`...

    tomcat中文帮助手册

    13. **更新与升级**:讲解如何安全地升级Tomcat版本,以及在升级过程中需要注意的事项。 14. **与其他服务集成**:探讨Tomcat与数据库、缓存系统、消息队列等其他服务的集成方法。 15. **社区支持**:推荐一些...

    JAAS认证(mac版tomcat)

    **Java Authentication and Authorization Service (JAAS) 认证在Mac版Tomcat中的应用** Java Authentication and Authorization Service (JAAS) 是Java平台的核心组件,用于提供安全的用户认证和权限管理。在Mac版...

    tomcat中文手册

    通过`conf/tomcat-users.xml`定义用户角色和权限,`conf/server.xml`中的`Realm`元素进行认证设置,`conf/context.xml`或`WEB-INF/web.xml`用于应用级别的访问控制。 七、性能优化 优化Tomcat主要包括调整JVM参数、...

    Tomcat中文手册

    - **Unix环境下**:在`bash/sh`中使用`export TOMCAT_HOME=foo/tomcat`;在`tcsh`中则使用`setenv TOMCAT_HOME foo/tomcat`。 - **启动与停止Tomcat**: - **启动**:通过`bin/startup.sh`(Unix)或`bin/startup...

    使用Tomcat验证LDAP by openDJ

    在这个场景中,openDJ作为一个开源的LDAP服务器,用于存储和管理用户身份信息,而Tomcat作为流行的Java应用服务器,配置来使用openDJ进行用户身份验证。 **Apache Tomcat** Apache Tomcat是基于Java的开源Web应用...

    Tomcat 接口文档 API

    2. **Context**: 在Tomcat中,Context代表一个Web应用程序,对应于WAR文件或WEB-INF目录。每个Context都有自己的配置,包括Servlet、Filter、Listener等。开发者可以通过ContextConfigListener来监听Web应用的初始化...

    tomcat-7.0.0安装版和tomcat-7.0.11免安装版

    5. **安全设置**:为了保护服务器,应启用并配置`conf/server.xml`中的`&lt;Realm&gt;`元素以实现身份验证,并考虑使用SSL/TLS加密通信。 在选择版本时,如果需要在多台机器上快速部署或避免系统级别的更改,免安装版可能...

    tomcat配置ldap权限验证

    在Tomcat的server.xml文件中,需要增加一个Realm元素,以便将LDAP服务器连接起来。Realm是Tomcat中的一个组件,负责身份验证和权限控制。这里使用的是JNDIRealm,即Java Naming and Directory Interface Realm,它...

    Tomcat5.5.20中文使用帮助文档

    7. **安全配置**:设置用户访问权限,创建和管理`tomcat-users.xml`中的用户角色,理解` Realm `的概念,如`MemoryRealm`、`JAASRealm`等,以及基于角色的访问控制(RBAC)。 8. **JMX监控**:利用Java Management ...

    tomcat7.0.42源码,eclipse直接使用

    在Tomcat7.0.42中,主要包含以下几个关键组件和目录: 1. `conf`:包含了Tomcat的配置文件,如server.xml,定义了服务器的各个部分,包括Connector(负责处理网络连接)和Context(代表一个Web应用程序)。 2. `...

    tomcat8安装包(含windows和linux版本).zip

    接着,设置环境变量并在系统中创建一个启动脚本,如/etc/init.d/tomcat,以便使用service命令管理Tomcat服务。Linux下还需要通过chmod命令赋予执行权限,并使用chkconfig命令将其添加为系统服务,实现开机启动。启动...

    tomcat 权限验证

    1. ** Realm配置 **:在Tomcat的`server.xml`或`context.xml`中,可以定义各种Realm类型,如`MemoryRealm`(内存中的用户和角色)、`JDBCRealm`(基于数据库的验证)或`PropertyFileRealm`(使用properties文件)。...

    在Tomcat中配置用户和虚拟目录

    在Apache Tomcat服务器中,配置用户和虚拟目录是管理和运行Web应用程序的重要环节。Tomcat作为一个流行的开源Java Servlet容器,提供了一种灵活的方式来部署和管理Web应用,并且支持安全的用户认证和多级目录结构。...

    apache-tomcat-6.0.44

    在这个版本中,Tomcat提供了对这些标准的良好支持,使得开发者能够构建动态、交互式的Web应用程序。以下是一些关于Tomcat 6.0.44的关键知识点: 1. **配置与安装**:安装Tomcat 6.0.44通常涉及解压下载的压缩包(如...

    Tomcat 8 免安装版本

    - 在`conf/server.xml`中配置`Realm`来实现身份验证,可以设置基于文件、JDBC或其他方式的用户数据库。 - `conf/web.xml`可以定义全局的安全约束,限制访问特定URL的用户角色。 8. **故障排查** - 当遇到问题时...

    tomcat6的源码

    Apache Tomcat 6是一款广泛应用的开源Java Servlet容器,它实现了Java EE中的Servlet和JSP规范。这个源码包,"apache-tomcat-6.0.43-src",是Tomcat 6的官方源代码,非常适合开发者进行深入学习和自定义修改。以下是...

    Tomcat中访问AD Server的配置方法

    在 Tomcat 中配置 SPNEGO Realm 为了使 Tomcat 能够访问 AD Server 上的信息,还需要配置一个自定义的 Realm。这个 Realm 将与 Active Directory 协作,获取与通过 Valve 验证的用户关联的组信息。配置示例如下: ...

    tomcat6.0官方文档文档

    Realm是Tomcat中的安全组件,负责验证用户身份并提供角色信息。 Realm如何配置的文档详细解释了不同类型的Realm(如Memory Realm、JDBC Realm等),以及如何与Servlet容器的安全机制结合,实现用户认证和授权。 四...

    tomcat7.0.109下载

    6. **安全管理**:Tomcat提供了基于角色的访问控制(RBAC),可以在`conf/tomcat-users.xml`文件中定义用户和角色,通过`&lt;Realm&gt;`元素配置认证方式。 7. **JNDI资源**:Tomcat支持JNDI(Java Naming and Directory ...

Global site tag (gtag.js) - Google Analytics