`
hiphunter921
  • 浏览: 68467 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Tomcat UserDatabaseRealm

阅读更多

在我们的web应用的web.xml中,如果有<security-constraint>标签,那么恭喜你,你正在使用tomcat的realm接口,通过容器来管理你的安全验证。

 

在上一篇博文中,对于自己的tomcat admin中也使用到了UserDatabaseRealm这个Realm的实现。

具体使用如下:

server.xml中的

<GlobalNamingResources> 标签下,包含了这样一个resource:

<Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml"/>  

其中描述了conf/tomcat-users.xml这个文件下,有定义tomcat的MemoryUserDatabase的实例的信息。

 

并在Engine标签下,应用了这个resource:

<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> 

讲此资源配置给UserDatabaseRealm,这样,这个Engine下的所有host都可以使用这个realm了。

 

 

回到应用的web.xml下,配置:

 

<security-constraint>
    <display-name>Tomcat Server Configuration Security Constraint</display-name>
    <web-resource-collection>
      <web-resource-name>Protected Area</web-resource-name>
      <!-- Define the context-relative URL(s) to be protected -->
      <url-pattern>*.jsp</url-pattern>
      <url-pattern>*.do</url-pattern>
      <url-pattern>*.html</url-pattern>
    </web-resource-collection>
    <auth-constraint>
      <!-- Anyone with one of the listed roles may access this area -->
      <role-name>elite-tomcat-admin-gui</role-name>
      <role-name>elite-tomcat-admin</role-name>
    </auth-constraint>
  </security-constraint>

  <!-- Login configuration uses form-based authentication -->
  <login-config>
    <auth-method>FORM</auth-method>
    <realm-name>Tomcat Server Configuration Form-Based Authentication Area</realm-name>
    <form-login-config>
      <form-login-page>/login.jsp</form-login-page>
      <form-error-page>/error.jsp</form-error-page>
    </form-login-config>
  </login-config>

  <!-- Security roles referenced by this web application -->
  <security-role>
    <description>
      The role that is required to log in to the Administration Application
    </description>
    <role-name>elite-tomcat-admin-gui</role-name>
  </security-role>
  <security-role>
    <description>
      Deprecated role name, that provides the same access as the "admin-gui" role.
    </description>
    <role-name>elite-tomcat-admin</role-name>
  </security-role>

此处定义了那些url-pattern需要验证,什么role是可以验证通过的。 

 

 

然后定义了验证方式,使用了FORM方式的验证:

login.jsp中大致如下:

 

 

<form method="POST" action='<%= response.encodeURL("j_security_check") %>' name="loginForm">
    <input type="text" name="j_username" size="16" id="username"/>
    <input type="password" name="j_password" size="16" id="password"/>
</form>

 在页面中又这样的form和j_username,j_password的时候,就会去使用到realm的验证了。

 

最后还定义了security-role,与tomcat-user.xml中的role定义相互对应。

 

tomcat还有许多realm的标准实现,在http://tomcat.apache.org/tomcat-5.5-doc/realm-howto.html

都可以看到相关介绍与示例,如果需要容器来管理应用的安全认证,可以以参考使用。

分享到:
评论

相关推荐

    apache-tomcat-8.5.69-windows-x64.zip

    此外,应配置好`server.xml`中的`UserDatabaseRealm`或使用其他身份验证方法来增强安全性。 总结来说,Apache Tomcat 8.5.69是用于Windows x64系统的强大Java Web服务器,能够支持各种Web应用的开发和部署。通过...

    JAAS认证(mac版tomcat)

    通常,Tomcat使用`MemoryRealm`或`UserDatabaseRealm`,但为了使用JAAS,你需要改为`JAASRealm`。例如: ```xml ``` 其中,`appName`是你的应用程序名,`userClassNames`是实现`javax.security.auth.spi....

    tomcat配置单点登录

    Tomcat提供了多种内置的Realm,如JDBCRealm用于从关系数据库中获取认证信息,DataSourceRealm通过JNDI数据源访问数据库,UserDatabaseRealm使用XML文件(conf/tomcat-users.xml)存储信息,JNDIRealm通过JNDI访问...

    tomcat10种配置技巧

    配置`server.xml`中的 Realm 组件,如`UserDatabaseRealm`,来实现基于角色的访问控制。确保只有授权用户才能访问敏感资源,并定期更新`tomcat-users.xml`中的用户和角色信息。 6. **日志管理** 通过修改`logging...

    TomCat API

    `Realm`接口和它的实现(如`MemoryRealm`、`UserDatabaseRealm`)负责身份验证,`SecurityConstraint`和`Role`用于定义权限。 7. **生命周期管理**:TomCat API中的组件遵循一套标准的生命周期管理,包括初始化、...

    Tomcat学习笔记

    UserDatabaseRealm从XML文件中加载用户信息,如conf/tomcat-users.xml。 5.4、配置基于 JDBCRealm 的安全域 JDBCRealm从数据库中获取用户信息,需配置数据源和SQL查询。 5.5、配置基于 DataSourceRealm 的安全域 ...

    Tomcat6配置连接池

    UserDatabaseRealm to authenticate users --&gt; type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users....

    tomcat-user的管理

    总结,管理Linux上的Tomcat 6用户涉及到编辑`server.xml`配置`UserDatabaseRealm`,创建并编辑`tomcat-users.xml`来定义用户和角色,以及理解这些配置如何影响服务器的权限控制。通过熟练掌握这些步骤,你可以有效地...

    tomcat8用redis实现session共享.rar

    UserDatabaseRealm to authenticate users --&gt; type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users....

    同时配置多个Tomcat服务器

    &lt;Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/&gt; ``` 这样,用户就可以通过`http://localhost:8888/test/aaa.html`来访问位于`F:\Root\test\aaa.html`的...

    centos7系统 jdk1.7 tomcat7.0

    &lt;Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/&gt; ``` 接着,在`/var/lib/tomcat7/conf/tomcat-users.xml`中添加用户和角色: ```xml &lt;tomcat-users&gt; ,manager-...

    Tomcat6.0 web服务器

    “org.apache.catalina.realm.UserDatabaseRealm” resourceName=“UserDatabase”/&gt; 把该片断命名为“MyWebApp.xml”,然后拷贝到CATALINA_BASE/webapps目录下。 这种context片断提供了一种便利的方法来部署web...

    tomcat 7.0源码

    1. **Realm**: Realm负责验证用户身份,如基于文件的`UserDatabaseRealm`或数据库的`JDBCRealm`。 2. **Role与Permission**:定义角色和权限,通过`&lt;security-constraint&gt;`、`&lt;role-name&gt;`、`&lt;auth-constraint&gt;`...

    tomcat6 server.xml 详解

    Realm负责认证和授权,例如,MemoryRealm使用内存中的用户和角色信息,UserDatabaseRealm从XML文件加载用户信息。 理解并掌握server.xml的配置对于优化Tomcat的性能、扩展功能以及解决部署问题至关重要。开发者...

    Tomcat 配置技巧精华详解分析

    ### Tomcat配置技巧精华详解分析 #### 一、Tomcat简介与重要性 Apache Tomcat是一款开源的Servlet容器,主要用于部署Java Web应用。它支持Java Servlet、JavaServer Pages (JSP)技术以及部分Web功能,如HTTP/HTTPS...

    Tomcat原理解析

    7. **UserDatabaseRealm.start()** - 初始化用户数据库认证。 8. **StandardPipeline:start()** - 启动管道处理。 9. **StandardContext:start()** - 启动上下文环境,部署Web应用。 在这个过程中,会涉及到多个...

    Tomcat6 数据源(MySQL)配置两种方法

    -- Editable user database that can also be used by UserDatabaseRealm to authenticate users --&gt; type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" ...

    tomcat配置到本机.txt

    - **UserDatabase**:配置用户数据库资源,可以被`UserDatabaseRealm`使用来进行用户认证。 ```xml ...

    jmx 监控 tomcat

    &lt;Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/&gt; rmiServerHost="127.0.0.1" rmiServerPort="1099" rmiRegistryPort="1099" serverSocketFactory="org....

    tomcat5.5.X域名转向和连接池配置的server.xml文件

    UserDatabaseRealm to authenticate users --&gt; type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users....

Global site tag (gtag.js) - Google Analytics