使用Tomcat实现页面访问控制主要有三种方式:
引用
- 使用JDBCRealm利用数据库控制
- 使用JNDIRealm利用远程访问控制
- 使用MemoryRealm利用tomcat-users.xml文件控制
一、使用JDBCRealm利用数据库控制
1.The meaning of the attributes is as follow:
attribute |
Meaning |
driverName |
The name of the driver needed to connect to the database |
connectionURL |
The connection URL used to connect to the database |
userTable |
The user's tables |
userNameCol |
The column in the user's table that contains the name |
userCredCol |
The column in the user's table that contains the password |
userRoleTable |
The user's roles table |
roleNameCol |
The column in the user's table that contains a role given to a user |
connectionName |
The name to use when connecting to the database. (Optional) |
connectionPassword |
The password to use when connecting to the database. (Optional) |
digest |
The algorithm used for digest passwords or "No" for plain passwords, the values can be "MD5", "MD2", "SHA", etc... (Optional) |
2.server.xml文件配制
Java代码
- <Realm className="org.apache.catalina.realm.JDBCRealm"
- driverName="com.mysql.jdbc.Driver"
- connectionURL="jdbc:mysql://localhost:3306/globalapp"
- connectionName="root" connectionPassword="x"
- roleNameCol="role_name" userCredCol="user_pass"
- userNameCol="user_name" userRoleTable="user_roles"
- userTable="users" debug="50"/>
引用
connectionURL、connectionName、connectionPassword不能拼在一起使用一个符串,虽然Tomcat doc上使用的是这种方法,但试了很多次都没能成功。具体原因不详。如果有高手解决还望说明一下。
3.web.xml文件配制
Xml代码
- <security-constraint>
- <web-resource-collection>
- <web-resource-name>Global App</web-resource-name>
- <url-pattern>/*</url-pattern>
- </web-resource-collection>
- <auth-constraint>
- <role-name>admin</role-name>
- </auth-constraint>
- </security-constraint>
- <!-- 这是FORM验证 -->
- <login-config>
- <auth-method>FORM</auth-method>
- <realm-name>Global App DIGEST</realm-name>
- <form-login-config>
- <form-login-page>/accessConsole/login.jsp</form-login-page>
- <form-error-page>/accessConsole/error.jsp</form-error-page>
- </form-login-config>
- </login-config>
- <security-role>
- <description>
- The role that is required to log into the Global application
- </description>
- <role-name>admin</role-name>
- </security-role>
4.数据库表建设
Sql代码
- create table users (
- user_name varchar(15) not null primary key,
- user_pass varchar(15) not null
- );
- create table user_roles (
- user_name varchar(15) not null,
- role_name varchar(15) not null,
- primary key (user_name, role_name)
- );
- insert into users values("xwood", "xwood");
- insert into user_roles values("xwood", "admin");
这里除了采用FORM验证外还可以采用BASIC验证,别外还有一种客户端证书验证方法没有用过。采用BASIC验证方法只需要将<form-login-config>标签去掉即可。
二、使用JNDIRealm利用远程访问控制
引用
还未具体研究
三、使用MemoryRealm利用tomcat-users.xml文件控制
1.server.xml配置
Xml代码
- <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" />
- <Realm className="org.apache.catalina.realm.MemoryRealm"
- resourceName="UserDatabase"/>
其中,UserDatabase在server.xml中已经完成配置
2.tomcat-users.xml配置
Xml代码
- <role rolename="admin"/>
- <role rolename="user"/>
- <user username="xwood" password="xwood" roles="admin"/>
3.web.xml配置
引用
与JDBCRealm相同
相关推荐
在这个“Struts2拦截器实现权限控制demo”中,我们将深入探讨如何利用拦截器来实现细粒度的用户权限管理。 首先,我们需要了解Struts2中的拦截器工作原理。拦截器是基于Java的动态代理模式实现的,它们按照配置的...
在这个主题中,“基于Shiro拦截URL,实现权限控制”意味着我们将探讨如何利用Shiro来管理应用程序中的访问权限,确保用户只能访问他们被授权的资源。 首先,我们需要理解Shiro的三个核心概念: 1. 身份验证...
这篇博客文章“struts2拦截器实现权限控制”深入探讨了如何利用Struts2的拦截机制来执行用户访问权限的验证。 在Struts2中,拦截器是基于AOP(面向切面编程)的概念设计的,它们在Action调用前后执行,可以添加额外...
本项目结合了layui前端框架和thinkphp后端框架,实现了最细粒度的权限控制,通过读取代码注释的方式来决定用户权限,这是一种创新且灵活的方法。 layui是一款轻量级、模块化的前端UI框架,提供了丰富的组件和样式,...
详情请查看博客:<a href='https://blog.csdn.net/byteArr/article/details/103984725'> springboot+自定义注解+AOP实现权限控制(一)和<a href='https://blog.csdn.net/byteArr/article/details/103992016'> ...
本文将详细探讨如何通过`Filter`实现权限控制,以及与RBAC(Role-Based Access Control,基于角色的访问控制)的关系。首先,让我们理解`Filter`的概念。 `Filter`是Java Servlet API中的一个重要组件,它允许我们...
要实现权限控制,首先需要创建一个自定义的拦截器。这通常涉及创建一个实现了`Interceptor`接口的类,并重写`intercept`方法。在这个方法中,我们可以添加验证用户权限的逻辑。 ```java public class ...
本文将详细探讨如何在Spring Boot项目中整合Shiro以实现权限控制。 首先,我们要理解Spring Boot与Shiro的基本概念。Spring Boot基于Spring框架,通过自动配置和起步依赖简化了项目的构建和部署。它提倡约定优于...
本教程将深入探讨如何使用Vue.js和element-ui组件库实现一个完善的后台管理系统的权限控制机制。Vue.js是一个轻量级的前端框架,而element-ui则为Vue提供了丰富的UI组件,axios则常用于处理HTTP请求,Vuex则是Vue的...
本文将深入探讨JavaScript如何实现权限控制,以及它在这个过程中的重要性。 首先,权限控制的核心目的是限制用户对资源的访问,确保只有具有适当权限的用户或程序才能执行特定的操作。在JavaScript中,权限控制主要...
在本教程中,我们将探讨如何将Spring Boot与Spring Security和OAuth2结合,实现在分布式系统中的权限控制,并利用Redis存储认证和授权信息。 首先,Spring Security是Spring生态中的核心安全组件,它提供了全面的...
Java Spring AOP 权限控制是指在 Java Spring 框架下使用 Aspect-Oriented Programming(面向方面编程)技术来实现权限控制。权限控制是指对用户的访问权限进行控制和管理,以确保系统的安全和可靠性。在 Java ...
综上所述,SpringBoot结合RBAC思想,可以有效地实现权限控制,覆盖从菜单到页面元素再到URL的多层次管理。通过灵活运用Spring Security提供的各种工具和注解,我们可以构建出安全且易于维护的权限管理系统。
主要介绍了vue自定义指令和动态路由实现权限控制的方法,帮助大家更好的理解和学习vue,感兴趣的朋友可以了解下
我们可以使用Spring Security来实现权限控制,使得不同用户只能访问自己所拥有的资源。 在Spring Security中,权限控制是通过FilterSecurityInterceptor来实现的。FilterSecurityInterceptor是一个过滤器,它可以...
4. **过滤器与拦截器**:为了实现权限控制,插件可能利用了Servlet Filter或者Spring MVC的Interceptor机制,对请求进行预处理,判断用户是否有权限执行当前操作。 5. **动态权限分配**:在某些情况下,权限可能...
在C# WinForm应用开发中,权限控制是一个关键的安全组件,它确保了只有授权的用户才能访问特定的功能或数据。本教程将详细讲解如何在C#...在实际项目中,应根据具体需求设计和实现权限控制,确保系统的安全性和稳定性。
其次,自定义标签则是在视图层面上实现权限控制。在JSP页面中,可以定义一个如`<permission:check>`的标签,用于检查用户是否拥有访问当前页面或元素的权限。如果权限验证失败,标签可以自动隐藏相关内容或者重定向...
以上步骤展示了如何在SharePoint 2010中实现权限控制的具体操作。掌握这些知识,可以帮助企业构建适合其业务需求的权限管理策略,确保企业信息的安全性和管理的有序性。在操作过程中,需要特别注意权限的继承和覆盖...
在 React 中,可以使用 Route 和 Menu 组件来实现权限控制。Route 组件用于定义路由规则,而 Menu 组件用于定义菜单项。 首先,让我们看一下路由配置: ```jsx export default ( ) ``` ...