- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 tomcat-users.xml 中定义了用户和角色:
<user username="admin" password="admin" roles="user,admin,APP_ADMIN"/>
<role rolename="user"/>
<role rolename="APP_ADMIN"/>
<role rolename="admin"/>
应用程序安全性定义为:
<security-constraint>
<web-resource-collection>
<web-resource-name>Dynamic pages</web-resource-name>
<url-pattern>*.jsp</url-pattern>
</web-resource-collection>
<auth-constraint>
<description>These are the roles who have access.</description>
<role-name>*</role-name>
</auth-constraint>
<user-data-constraint>
<description></description>
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
但是当我以管理员身份登录到应用程序时,它总是给我 HTTP 403 未授权。
我用 JSP 脚本检查了角色:
out.write(request.getUserPrincipal().toString());
它打印:
User username="admin", roles="user,admin,APP_ADMIN"
但是当我检查 isUserInRole 时:
out.write(request.isUserInRole("APP_ADMIN") ? "Yep" : "nope");
获取:
nope
Tomcat版本为7.0.55
最佳答案
1:您可能必须在 web.xml 中定义角色。请参阅此 SO 问题 Why do I list security roles in web.xml when they're in jdbcRealm database? .
2:角色名称中的通配符“*”可能会引起麻烦。也许尝试使用角色名称“用户”,看看它是否有效。
对于作为角色名称的通配符,您必须启用 allRolesMode
:
This attribute controls how the special role name * is handled when processing authorization constraints in web.xml. By default, the specification compliant value of strict is used which means that the user must be assigned one of the roles defined in web.xml. The alternative values are authOnly which means that the user must be authenticated but no check is made for assigned roles and strictAuthOnly which means that the user must be authenticated and no check will be made for assigned roles unless roles are defined in web.xml in which case the user must be assigned at least one of those roles.
有关更多信息,请参阅 Tomcat 文档:https://tomcat.apache.org/tomcat-7.0-doc/config/realm.html
关于java - Tomcat 用户具有主要角色,但 request.isUserInRole() 另有说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30526179/
我已经在 glassfish 3.0 中配置了 JAAS 并使用 JDBCRealm 来验证用户身份。它工作正常并且 URL 受到限制。但方法#{facesContext.externalContex
我按如下方式将用户添加到角色(请注意,我在我的机器上运行下面显示的代码): Roles.AddUserToRole(oMU.UserName, "Role1"); 使用以下代码我检查用户是否在
规范: 小服务程序:3.0 Java: 7 Tomcat :7.0.54 简介: 可以使用 HttpServletRequest.isUserInRole() 方法以编程方式检查用户是否具有特定角色
防止用户角色执行操作。 示例 1:角色“管理员” 是唯一允许扮演的角色 破坏行动。 示例 2:任何不同于“guest”的角色都可以执行 CREATE 操作。 在一个真实的案例中,我有这个: publi
我正在开发我的第一个 Jsf、Jaas、JPA、JBoss 应用程序,现在我遇到了这个麻烦。我在 JBoss 中创建了两个安全域:
HttpServletRequest isUserInRole() 方法将根据角色是否存在返回一个 boolean 值。现在,如果它这样做,它应该在某处拥有登录用户的完整角色列表。我如何获得完整的角色
当我实现 RoleProvider 类并调用 Roles.IsUserInRole(string username, string roleName) 时,代码执行首先转到方法“GetRolesFor
我在很多帖子中都发现了这个问题,但我找不到解决方案。我有一个基于领域的身份验证,并且有两个映射的角色 USERS 和 ADMINS。登录正常,但如果我尝试使用 FacesContext context
我有一个带有自定义成员资格的 c# mvc razor web 应用程序,一切都很好。我可以使用以下命令获取登录用户名:user.identity.name。我有一个用户名及其角色的数据库。现在的问题
我正在使用 Glassfish 3.1.1 作为我的应用服务器开发 Java EE 6 应用程序。我正在使用声明性和程序化安全性。我在部署描述符中定义了几个角色,并定义了所有安全约束。 我使用的是 J
我正在使用: request.IsUserInRole("ADMIN") 在我的 Controller 之一中确定对请求的响应。我尝试在测试中模拟请求,例如: @Mock private HttpSe
我正在尝试实现自定义角色提供程序。我们可以实现抽象类 RoleProvider,它使我们能够访问覆盖 RoleProvider.IsUserInRole(Username, Rolename) 但我们
我最近在 JSP 中开发了一个 tomcat 网络应用程序,它使用绑定(bind)到公司 Active Directory 的声明性安全性 (server.xml/web.xml)。我被要求为刚刚起步
在 MVC4 中,我使用 Roles.IsUserInRole 来检查给定用户是否处于某个角色。但是,使用 MVC5 我不能再这样做了...... 起初,它要求我在 web.config 中启用 Ro
在 .NET 2.0 中的自定义角色提供程序(继承自 RoleProvider)中,IsUserInRole 方法已被硬编码为始终返回 true: public override bool IsUse
我正在通过 JBoss AS7 服务器使用 Struts 2 和 Rest Services 开发一个小型 Java EE 应用程序。 我对 REST 和 Web 内容使用 FORM auth,我对
我的 Spring 应用程序为我的登录页面使用了一个包含用户和角色的数据库以及两者的交叉表。 为了将用户重定向到不同的角色页面,我使用了 Controller @Controller public c
在 tomcat-users.xml 中定义了用户和角色: 应用程序安全性定义为: Dynamic pages
问题来了 JAAS 领域连接到数据库正常,用户名和密码匹配, session 通过身份验证。然而,这些角色似乎都没有进入校长。 Tomcat 的 isInUserRole 为每个角色返回 false,
我开始认真地认为,就开发工作而言,我工作的地方受到了诅咒,我不断遇到非常奇怪的问题。 我正在使用 Roles.IsUserInRole(@"Domain\Domain Admins") 检查用户是否是
我是一名优秀的程序员,十分优秀!