Heee那里,
现在我完全卡住了。我花了几个小时询问谷歌,但我还没有找到任何解决方案或方法。也许你们可以帮助我。
一些背景信息:
我正在将微服务开发到现有的微服务基础架构中。我想使用spring boot并将服务连接到我们现有的身份验证服务。还有很多其他jax rs微服务已经连接到它。我开始使用身份验证和授权过滤器。身份验证过滤器运行良好。
问题:
我想用自己的"安全"注释就像在其他服务中一样。 因此,控制器中有一些带注释的资源方法,如下例所示:
@Secured({Role.ADMIN,...})
@RequestMapping(value = "/interfaces", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<ExportInvoiceInterfaceResponseRepListWrapper> getAll() {
...
}
所以当下面的过滤器被触发时,我想读取带注释的控制器方法的角色。在jax rs中我只使用了Class ResourceInfo来实现。您可能知道我无法在默认的Spring启动设置中使用此类。有没有办法让课程&#34;弹簧启动方式&#34;?
public class AuthorizationFilter extends GenericFilterBean {
@Context
private ResourceInfo resourceInfo;
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpRequest = (HttpServletRequest) request;
HttpServletResponse httpResponse = (HttpServletResponse) response;
// Get the resource class which matches with the requested URL
// Extract the roles declared by it
Class<?> resourceClass = resourceInfo.getResourceClass();
List<Role> classRoles = extractRoles(resourceClass);
...
}
任何帮助都会很棒。先谢谢你。
干杯 弗兰克