spring 两次进入拦截器_Spring mvc 拦截器 怎么会进去两次

最近在配置一个框架话不多说 贴代码

java  代码

public class AuthInterceptor extends HandlerInterceptorAdapter{

protected final Logger logger = Logger.getLogger(AuthInterceptor.class);

public static final String SESSION_SYSTEMSSO_KEY = "SYSTEM_SSO";

@Override

public boolean preHandle(HttpServletRequest request,

HttpServletResponse response, Object handler) throws Exception {

if (logger.isDebugEnabled()) {

logger.debug("AuthInterceptor Interceptor : preHandle => Begin");

}

if(isStreamIdExist(request)){

logger.debug("==========================验证不通过=====================");

throw new CsidAuthException("request stream ID is invalid");

}

if(!authValidation(request)){

logger.debug("===========================验证不通过,验证信息错误!=====================");

throw new CsidAuthException("login validation error");

}

if (logger.isDebugEnabled()) {

logger.debug("===========================验证通过!=======================");

logger.debug("AuthInterceptor Interceptor : preHandle => End");

}

return true;

}

xml  配置

配置上感觉是没有问题 在每次flow 访问都会进去 transactionInterceptor authInterceptor 这两个拦截器 但是每次请求一次便会对这两个拦截器执行两次 理论上应该是一次的

处理逻辑就是 从request获取一个 Stream id 来检查内存是否存在 不存在并且不为空 则验证通过 反之则不通过 下面是 flow一次请求 控制台输出的信息 第一次验证通过了 但是马上进入第二次authInterceptor进行验证 Stream id 为空 则会被拦截 很奇怪 拦截器怎么会被 执行两次? 请大虾们帮小弟解决下这个问题 或者 给点思路

13:48:45,734 INFO [STDOUT] DEBUG [http-127.0.0.1-8080-1] (TransactionInterceptor.java:84) - Transaction Interceptor : preHandle => Begin

13:48:45,734 INFO [STDOUT] DEBUG [http-127.0.0.1-8080-1] (TransactionInterceptor.java:107) - Transaction Interceptor : prepareRequest => Begin

13:48:45,734 INFO [STDOUT] DEBUG [http-127.0.0.1-8080-1] (TransactionInterceptor.java:126) - Transaction is opened before by other controller's interceptor (txnId=1). Skip Transaction open. txnId=1

13:48:45,734 INFO [STDOUT] DEBUG [http-127.0.0.1-8080-1] (TransactionInterceptor.java:133) - Transaction Interceptor : prepareRequest => End

13:48:45,734 INFO [STDOUT] DEBUG [http-127.0.0.1-8080-1] (TransactionInterceptor.java:90) - Transaction Interceptor : preHandle => End

13:48:45,750 INFO [STDOUT] DEBUG [http-127.0.0.1-8080-1] (AuthInterceptor.java:37) - AuthInterceptor Interceptor : preHandle => Begin

13:48:45,750 INFO [STDOUT] DEBUG [http-127.0.0.1-8080-1] (AuthInterceptor.java:134) - Stream ID is 1282715325155

13:48:45,750 INFO [STDOUT] DEBUG [http-127.0.0.1-8080-1] (CacheHelperImpl.java:32) - [service.oneDay]::retrieveCacheElement => key:[1282715325155]

13:48:45,750 INFO [STDOUT] DEBUG [http-127.0.0.1-8080-1] (CacheHelperImpl.java:145) - cache can not retrieve for cache key='1282715325155'

13:48:45,750 INFO [STDOUT] DEBUG [http-127.0.0.1-8080-1] (CacheHelperImpl.java:91) - [service.oneDay]::setCacheElement => key:[1282715325155]

13:48:45,750 INFO [STDOUT] DEBUG [http-127.0.0.1-8080-1] (AuthInterceptor.java:51) - ===========================验证通过!=======================

13:48:45,750 INFO [STDOUT] DEBUG [http-127.0.0.1-8080-1] (AuthInterceptor.java:52) - AuthInterceptor Interceptor : preHandle => End

13:48:45,828 INFO [STDOUT] DEBUG [http-127.0.0.1-8080-1] (TransactionInterceptor.java:40) - Transaction Interceptor : afterCompletion => Begin

13:48:45,828 INFO [STDOUT] DEBUG [http-127.0.0.1-8080-1] (TransactionInterceptor.java:50) - Try to close transaction. txnId=1

13:48:45,828 INFO [STDOUT] DEBUG [http-127.0.0.1-8080-1] (TransactionInterceptor.java:56) - Start to close transaction for the request:/CSID_WEB/webflow/csid/custInfo

13:48:45,828 INFO [STDOUT] DEBUG [http-127.0.0.1-8080-1] (TransactionSvcImpl.java:86) - ----------------------------------------------------

13:48:45,828 INFO [STDOUT] DEBUG [http-127.0.0.1-8080-1] (TransactionSvcImpl.java:87) - ------------ Transaction will be roll back ---------

13:48:45,828 INFO [STDOUT] DEBUG [http-127.0.0.1-8080-1] (TransactionSvcImpl.java:88) - ----------------------------------------------------

13:48:45,828 INFO [STDOUT] DEBUG [http-127.0.0.1-8080-1] (TransactionSvcImpl.java:116) - Try to rollback trasaction.

13:48:45,828 INFO [STDOUT] DEBUG [http-127.0.0.1-8080-1] (TransactionSvcImpl.java:133) - TransactionSvcImpl: Check the coding whether the transaction is already commited already.

13:48:45,828 INFO [STDOUT] DEBUG [http-127.0.0.1-8080-1] (TransactionInterceptor.java:72) - Transaction Interceptor : afterCompletion => End

13:48:45,843 INFO [STDOUT] DEBUG [http-127.0.0.1-8080-1] (TransactionInterceptor.java:84) - Transaction Interceptor : preHandle => Begin

13:48:45,843 INFO [STDOUT] DEBUG [http-127.0.0.1-8080-1] (TransactionInterceptor.java:107) - Transaction Interceptor : prepareRequest => Begin

13:48:45,843 INFO [STDOUT] DEBUG [http-127.0.0.1-8080-1] (TransactionInterceptor.java:126) - Transaction is opened before by other controller's interceptor (txnId=1). Skip Transaction open. txnId=1

13:48:45,843 INFO [STDOUT] DEBUG [http-127.0.0.1-8080-1] (TransactionInterceptor.java:133) - Transaction Interceptor : prepareRequest => End

13:48:45,843 INFO [STDOUT] DEBUG [http-127.0.0.1-8080-1] (TransactionInterceptor.java:90) - Transaction Interceptor : preHandle => End

13:48:45,843 INFO [STDOUT] DEBUG [http-127.0.0.1-8080-1] (AuthInterceptor.java:37) - AuthInterceptor Interceptor : preHandle => Begin

13:48:45,843 INFO [STDOUT] INFO [http-127.0.0.1-8080-1] (AuthInterceptor.java:140) - Stream ID is empty in the request

13:48:45,843 INFO [STDOUT] DEBUG [http-127.0.0.1-8080-1] (AuthInterceptor.java:41) - ===========================验证不通过=====================

13:48:45,859 INFO [STDOUT] DEBUG [http-127.0.0.1-8080-1] (CsidExceptionResolver.java:50) - setRollbackOnly in TransactionStatus

13:48:45,859 INFO [STDOUT] DEBUG [http-127.0.0.1-8080-1] (SimpleMappingExceptionResolver.java:251) - Resolving exception from handler [[FlowHandlerMapping.DefaultFlowHandler@4cc243]]: cn.tisson.csid.common.web.exception.CsidAuthException: request stream ID is invalid

13:48:45,859 INFO [STDOUT] WARN [http-127.0.0.1-8080-1] (SimpleMappingExceptionResolver.java:285) - Handler execution resulted in exception

cn.tisson.csid.common.web.exception.CsidAuthException: request stream ID is invalid

at cn.tisson.csid.common.web.interceptor.AuthInterceptor.preHandle(AuthInterceptor.java:42)

at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:865)

at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809)

at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)

at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)

at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)

at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)

at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)

at java.lang.Thread.run(Thread.java:619)

13:48:45,859 INFO [STDOUT] DEBUG [http-127.0.0.1-8080-1] (SimpleMappingExceptionResolver.java:347) - Resolving to view 'defaultErrorView' for exception of type [cn.tisson.csid.common.web.exception.CsidAuthException], based on exception mapping [cn.tisson.csid.common.web.exception.CsidAuthException]

13:48:45,859 INFO [STDOUT] DEBUG [http-127.0.0.1-8080-1] (SimpleMappingExceptionResolver.java:439) - Exposing Exception as model attribute 'exception'

13:48:46,203 INFO [STDOUT] DEBUG [http-127.0.0.1-8080-1] (TransactionInterceptor.java:40) - Transaction Interceptor : afterCompletion => Begin

13:48:46,203 INFO [STDOUT] DEBUG [http-127.0.0.1-8080-1] (TransactionInterceptor.java:50) - Try to close transaction. txnId=1

13:48:46,203 INFO [STDOUT] DEBUG [http-127.0.0.1-8080-1] (TransactionInterceptor.java:56) - Start to close transaction for the request:/CSID_WEB/webflow/csid/custInfo

13:48:46,203 INFO [STDOUT] DEBUG [http-127.0.0.1-8080-1] (TransactionSvcImpl.java:86) - ----------------------------------------------------

13:48:46,203 INFO [STDOUT] DEBUG [http-127.0.0.1-8080-1] (TransactionSvcImpl.java:87) - ------------ Transaction will be roll back ---------

13:48:46,234 INFO [STDOUT] DEBUG [http-127.0.0.1-8080-1] (TransactionSvcImpl.java:88) - ----------------------------------------------------

13:48:46,234 INFO [STDOUT] DEBUG [http-127.0.0.1-8080-1] (TransactionSvcImpl.java:116) - Try to rollback trasaction.

13:48:46,234 INFO [STDOUT] DEBUG [http-127.0.0.1-8080-1] (TransactionSvcImpl.java:133) - TransactionSvcImpl: Check the coding whether the transaction is already commited already.

13:48:46,234 INFO [STDOUT] DEBUG [http-127.0.0.1-8080-1] (TransactionInterceptor.java:72) - Transaction Interceptor : afterCompletion => End

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值