Tomcat基本身份验证权限发行

问题描述

| 我目前有一个通过Tomcat运行一些基本身份验证的Web服务。我会看到弹出的对话框,可以使用在tomcat-users.xml文件中定义的帐户登录。但是,在基于角色定义权限时,我遇到了一些问题。 目前,我有三个角色:经理,管理员用户我有几种方法只能由管理员角色访问。我可以以我的管理员/管理员/用户超级帐户身份登录,并且一切正常,但是我也可以像普通用户一样进行操作。 方法的定义如下:
@Path(\"/Test\")
@RolesAllowed(\"admin\")
public class Test
{
    @GET
    @RolesAllowed(\"user\")
    public methodThatMyUsersCanAcess{}

    @GET
    @Path(\"/Secure\")
    @RolesAllowed(\"admin\")
    public methodThatOnlyAdminsCanAcess{}
}
我真的不确定'用户'角色将如何访问第二种方法,但是仍然会以某种方式发生。     

解决方法

        经过更多调查后,我发现由于web.xml文件的配置方式,使用ѭ1不能在代码中执行任何操作。我决定朝着通过URI路径设置身份验证的方向发展。这是通过修改web.xml来完成的,以允许一部分用户访问单独的“ 2”标记下的每个路径。我在这里找到了我的最佳资源:http://www.coderanch.com/t/176095/java-Web-Component-SCWCD/certification/auth-constraint-confusion在第二篇文章中。     ,        关键是在web.xml中配置“ 3”,如下所示:
<servlet> 
    <servlet-name>jersey-servlet</servlet-name> 
    <servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class> 
        <init-param> 
            <param-name>com.sun.jersey.config.property.packages</param-name> 
            <param-value>com.mycompany.mobile.rest</param-value> 
        </init-param>
        <init-param>
            <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
            <param-value>true</param-value>
        </init-param>
        <init-param>
            <param-name>com.sun.jersey.config.feature.Trace</param-name>
            <param-value>true</param-value>
        </init-param>
        <init-param>
            <param-name>com.sun.jersey.spi.container.ContainerRequestFilters</param-name>
            <param-value>com.mycompany.mobile.rest.filter.RestSecurityFilter</param-value>
        </init-param>
        <init-param>
            <param-name>com.sun.jersey.spi.container.ResourceFilters</param-name>
            <param-value>com.sun.jersey.api.container.filter.RolesAllowedResourceFilterFactory</param-value>
        </init-param>
    <load-on-startup>1</load-on-startup> 
</servlet> 
    

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...