我想在Mule 3中实现一个安全过滤器,以扩展Spring Security的OncePerRequestFilter。但是我无法使它正常工作,因为尚未获得用于身份验证的代码。
这是在mule xml上注册过滤器的代码。
<spring:bean id="requestContextFilter" class="com.sample.authentication.BeforeBasicAuthFilter"/>
<ss:http entry-point-ref="restAuthenticationEntryPoint">
<ss:custom-filter ref="requestContextFilter" before="FIRST"/>
</ss:http>
public class BeforeBasicAuthFilter extends OncePerRequestFilter {
private HttpServletRequest request;
public HttpServletRequest getRequest() {
return request;
}
public void setRequest(HttpServletRequest request) {
this.request = request;
}
@Override
protected void doFilterInternal(HttpServletRequest request,
HttpServletResponse response, FilterChain filterChain)
throws ServletException, IOException {
this.request = request;
System.out.println("XXXX ");
filterChain.doFilter(request, response);
}
}
我认为该筛选器未注册供http侦听器或身份验证管理器使用。 Mule中有没有办法注册要在http侦听器上使用的过滤器?我的目标是我应该能够在身份验证发生之前拦截原始的http请求。
答案 0 :(得分:0)
在BASIC_AUTH_FILTER
中的custom-filter
之前使用。
<ss:http entry-point-ref="restAuthenticationEntryPoint">
<ss:custom-filter ref="requestContextFilter" before="BASIC_AUTH_FILTER"/>
</ss:http>