Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有没有办法阻止用户访问resteasy中的PUT、POST和DELETE资源?_Java_Rest_Authorization_Jax Rs_Resteasy - Fatal编程技术网

Java 有没有办法阻止用户访问resteasy中的PUT、POST和DELETE资源?

Java 有没有办法阻止用户访问resteasy中的PUT、POST和DELETE资源?,java,rest,authorization,jax-rs,resteasy,Java,Rest,Authorization,Jax Rs,Resteasy,我的程序中有很多方法,也有很多用户。我该怎么做,使一个特定的用户配置文件只允许访问用@GET-in-RestEasy标记的方法 更新 我有一些用户档案,如管理员、所有者、经理、员工和演示 我想拒绝所有的操作,但得到的用户配置文件是演示。我阻止一些用户执行某些方法的方法只是检查他们属于哪个配置文件(IF)。如果您的系统已经定义了用户和角色,并且您可以使用JAAS实现标准身份验证和授权,那么您可以使用Jboss安全注释来保护您的方法。有关更多详细信息,请参阅此链接- 在REST服务前面,您还可以添加

我的程序中有很多方法,也有很多用户。我该怎么做,使一个特定的用户配置文件只允许访问用@GET-in-RestEasy标记的方法

更新

我有一些用户档案,如管理员、所有者、经理、员工和演示


我想拒绝所有的操作,但得到的用户配置文件是演示。我阻止一些用户执行某些方法的方法只是检查他们属于哪个配置文件(IF)。

如果您的系统已经定义了用户和角色,并且您可以使用JAAS实现标准身份验证和授权,那么您可以使用Jboss安全注释来保护您的方法。有关更多详细信息,请参阅此链接-


在REST服务前面,您还可以添加反向HTTP代理(如Apache)并使用所需的身份验证提供程序(LDAP或其他)

例如:

<Location /myService/>
   AuthType Basic
   AuthName Foo
   AuthBasicProvider ldap
   AuthzLDAPAuthoritative off
   AuthLDAPURL ldap://ldap.acme.org/dc=acme,dc=org?cn
   <LIMIT POST PUT DELETE>
     require ldap-group cn=employee,dc=acme,dc=org
   </LIMIT>
</Location>

AuthType Basic
AuthName Foo
AuthBasicProvider ldap
authzldapoff
AuthLDAPURLldap://ldap.acme.org/dc=acme,dc=org?cn
需要ldap组cn=employee,dc=acme,dc=org

您如何识别这样的用户?请提供更多关于应用程序中的“用户配置文件”以及此类用户配置文件如何与您的资源交互的详细信息。看起来很有用,但他们说:注意!!!如果您正在使用EJB,请不要打开此开关。EJB容器将提供此功能,而不是Resteasy。我正在使用EJB,所以看起来我们陷入了另一个问题……这甚至是个好消息。您可以使用EJB3附带的标准授权机制。设置Jaas身份验证后,可以使用“PermitAll”和“RolesAllowed”注释来控制对方法的访问。