我希望能够从请求中打印JAX-RS 2 JSON有效负载,无论我的应用服务器上的实际实现如何.
我在SO上尝试了建议的解决方案,但都包含了实际实现的二进制文件(比如Jersey和类似的),我只允许在我的应用程序中使用javaee-api v 7.0.
我已尝试在我的客户端上实现ClientRequestFilter和ClientResponseFilter,但它们不包含序列化实体.
这是客户的一个例子:
WebTarget target = ClientBuilder.newClient().register(MyLoggingFilter.class).target("http://localhost:8080/loggingtest/resources/accounts");
Account acc = target.request().accept(MediaType.APPLICATION_JSON).get(account.Account.class);
Run Code Online (Sandbox Code Playgroud)
这是MyLoggingFilter的实现:
@Provider
public class MyLoggingFilter implements ClientRequestFilter, ClientResponseFilter {
private static final Logger LOGGER = Logger.getLogger(MyLoggingFilter.class.getName());
@Override
public void filter(ClientRequestContext requestContext) throws IOException {
LOGGER.log(Level.SEVERE, "Request method: {0}", requestContext.getMethod());
}
@Override
public void filter(ClientRequestContext requestContext, ClientResponseContext responseContext) throws IOException {
LOGGER.log(Level.SEVERE, "Response status: {0}", responseContext.getStatus());
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个JAX-RS服务,我希望所有用户都能访问我的服务,但只有那些有权查看结果的用户.基于角色的安全性和现有的REALMS和身份验证方法不符合我的要求.
例如:
问题是:我应该在哪里检查用户ID,在某个单独的过滤器,安全上下文或每个REST方法实现中?如何使用此ID提供REST方法,在按ID过滤请求后,是否可以在每个方法中注入securityContext?
我正在使用GlassFish 4.1和Jersey JAX-RS实现.
我有一个简单的angularjs应用程序,使用ngRoute模块在html5Mode中进行路由.如何在我的页面上有一些静态文件的链接,而不是通过angular routing mdule拦截它?
这是一个例子:
HTML:
<head>
<base href='/'></base>
</head>
<body ng-app="crudApp">
<a href="/">Home</a>
<a href="/user">User</a>
<a href="/users.html">users.html</a>
<div ng-view></div>
Run Code Online (Sandbox Code Playgroud)
JS路由:
$routeProvider
.when('/', {
templateUrl: 'app/components/home/homeView.html',
controller: 'HomeController'
})
.when('/user', {
templateUrl: 'app/components/user/userView.html',
controller: 'UserController'
})
.otherwise({
redirectTo: '/'
});
Run Code Online (Sandbox Code Playgroud)
当我点击用户链接时,我会被路由到localhost:8080/user,我的控制器和模板工作正常.当我点击users.html链接时,我会被路由到家,但我想调用一个静态的home.html页面.