Mule Http侦听器的自定义身份验证筛选器

时间:2018-10-19 01:56:24

标签: spring spring-security mule

我想在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请求。

1 个答案:

答案 0 :(得分:0)

BASIC_AUTH_FILTER中的custom-filter之前使用。

 <ss:http entry-point-ref="restAuthenticationEntryPoint"> 
    <ss:custom-filter ref="requestContextFilter" before="BASIC_AUTH_FILTER"/>
 </ss:http>