在JAAS中的策略文件中授予URL权限

时间:2014-03-06 06:38:43

标签: java rest permissions jaas policy

我做了一个休息应用程序,它本身可以正常工作。

import javax.ws.rs.GET;
import javax.ws.rs.Path;

@Path("/helloworld")
public class HelloWorldResource 
{

    @GET
    public String getMessage() 
    {
        return "Hello World!";
    }
}

我想从使用JAAS的客户端调用它。有两个Principal,即UserPrincipal和SystemAdminPrincipal。我想在Principal是SystemAdminPrincipal时调用Web服务。我正在使用URLPermission来授予权限和apache HttpClient来执行get方法。政策文件是

grant Principal UserPrincipal "user"
{

}; 

grant Principal SysAdminPrincipal "sysadmin"
{
  permission java.net.URLPermission "http://localhost:8080/HelloWorldREST/helloworld","GET";

}; 

但即使是SystemAdminPrincipal,我也遇到安全异常。可能我的情况是URLPermission的使用有问题。有人可能会指出如何正确使用URLPermission.Thanks。

1 个答案:

答案 0 :(得分:2)

策略文件应在授予URLPermission之前授予套接字权限。策略文件应为。

grant Principal SysAdminPrincipal "sysadmin"
{

   permission java.net.SocketPermission "127.0.0.1:8080","connect,resolve";
   permission java.net.URLPermission "http://localhost:8080/HelloWorldREST/helloworld","GET";
}; 

grant Principal UserPrincipal "user"
{

}; 
相关问题