相关疑难解决方法(0)

通过Spring进行RESTful身份验证

问题:
我们有一个基于Spring MVC的RESTful API,它包含敏感信息.应该保护API,但是不希望向每个请求发送用户的凭证(用户/通过组合).根据REST准则(和内部业务要求),服务器必须保持无状态.API将由mashup风格的方法由另一台服务器使用.

要求:

  • 客户端.../authenticate使用凭据向(未受保护的URL)发出请求; 服务器返回一个安全令牌,其中包含足够的信息,供服务器验证将来的请求并保持无状态.这可能包含与Spring Security的Remember-Me Token相同的信息.

  • 客户端对各种(受保护的)URL进行后续请求,将先前获得的令牌附加为查询参数(或者不太希望的是HTTP请求头).

  • 不能指望客户存储cookie.

  • 由于我们已经使用Spring,因此该解决方案应该使用Spring Security.

我们一直在试图让这项工作碰壁,所以希望那里的人已经解决了这个问题.

鉴于上述情况,您如何解决这一特殊需求?

java rest spring spring-mvc spring-security

253
推荐指数
3
解决办法
12万
查看次数

DropWizard Auth领域

在DropWizard中,我可以像这样设置基本身份验证(在Application#runimpl中):

BasicAuthProvider<SimplePrincipal> authProvider = new BasicAuthProvider(authenticator, "SECRET_REALM");
environment.jersey().register(authProvider);
Run Code Online (Sandbox Code Playgroud)

我想知道String realm(" SECRET_REALM ")的重要性是什么?

从一般安全概念来看,我理解一个"领域"是一个存储用户和角色/权限的地方(数据库,目录,文件,密钥库等).

一个领域在DropWizard中意味着什么,以及在内部指定它的意义是什么BasicAuthProvider?它是否在引擎盖下创造了这个领域的东西?

java authentication jax-rs jersey dropwizard

7
推荐指数
1
解决办法
2612
查看次数

如何访问由@RolesAllowed保护的Jersey资源

我们正在测试通过邮递员休息客户端在泽西开发的REST Web服务.它是一个POST方法,并带有注释@RolesAllowed.完整注释方法如下:

@POST
@Path("/configuration")
@RolesAllowed("admin")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
Run Code Online (Sandbox Code Playgroud)

当我http://baseurl/configuration用预期的HTTP正文内容请求这个时,我得到了403响应(这是预期的,因为它似乎只允许管理员).

我怀疑的是如何通过rest客户端使用指定的角色访问此服务.

java jersey jersey-2.0 postman

5
推荐指数
1
解决办法
1万
查看次数