LifeCenterInterCeptor.java 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. package com.lemon.lifecenter.common;
  2. import java.io.IOException;
  3. import javax.servlet.http.HttpServletRequest;
  4. import javax.servlet.http.HttpServletResponse;
  5. import org.slf4j.Logger;
  6. import org.slf4j.LoggerFactory;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.stereotype.Component;
  9. import org.springframework.web.servlet.ModelAndView;
  10. import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
  11. @Component
  12. public class LifeCenterInterCeptor extends HandlerInterceptorAdapter {
  13. @Autowired
  14. private LifeCenterConfigVO config;
  15. private final Logger logger = LoggerFactory.getLogger(this.getClass());
  16. @Override
  17. public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws IOException {
  18. logger.info( "--------------------- InterCeptor Start --------------------- " );
  19. String url = request.getRequestURI().toString();
  20. String port = String.valueOf(request.getServerPort());
  21. Object session = request.getSession().getAttribute( "sesId" );
  22. Object groupIdx = request.getSession().getAttribute( "sesGroupIdx" );
  23. Object sesMId = request.getSession().getAttribute( "sesMId" );
  24. Object sesPasswordChange = request.getSession().getAttribute( "sesPasswordChange" );
  25. Object sesAcceptCheck = request.getSession().getAttribute( "sesAcceptCheck" );
  26. logger.info( "|------------------------------------------------------------------|" );
  27. logger.info( "| URL : " + url + " | IP : " + LifeCenterFunction.getRemoteAddr(request) + " | Port : " + port );
  28. logger.info( "|------------------------------------------------------------------|" );
  29. logger.info( " sesMobileId : " + sesMId + " sesWebId : " + session + " groupIdx : " + groupIdx );
  30. if ( url.contains( "/error" ) || url.contains( "/nonface/wait" ) ||
  31. url.contains( "/store" ) || url.contains( "/favicon.ico" ) || url.contains( "/mobile/getAppVersion" ) ||
  32. url.contains("/lifeCenter/api") ) {
  33. return true;
  34. }
  35. if( url.contains( "/mobile" ) ) {
  36. if( !url.equals( "/mobile/login" ) && !url.equals( "/mobile/check" ) ) {
  37. if( sesMId == null ) {
  38. response.sendRedirect( "/mobile/login" );
  39. return false;
  40. } else {
  41. logger.info( "IP : " + LifeCenterFunction.getRemoteAddr( request ) + " ID : " + sesMId.toString() + " URL : " + url + " Port : " + port );
  42. }
  43. } else if( url.equals( "/mobile/login" ) ) {
  44. if( sesMId != null ) {
  45. response.sendRedirect( "/mobile/menu" );
  46. return false;
  47. }
  48. }
  49. } else {
  50. if( !url.equals( "/login/staff" ) && !url.equals( "/login/admin" ) && !url.equals( "/login/check" ) ) {
  51. if( session == null ) {
  52. response.sendRedirect( "/login/staff" );
  53. return false;
  54. } else {
  55. logger.info( "IP : " + LifeCenterFunction.getRemoteAddr( request ) + " ID : " + session.toString() + " URL : " + url + " Port : " + port );
  56. if( sesAcceptCheck != null && sesAcceptCheck.equals( "Y" ) ) {
  57. if( !url.equals( "/accept/list" ) ) {
  58. logger.info( "약관 동의 페이지로 이동" );
  59. if( !url.equals( "/accept/insert" ) && !url.equals( "/login/logout" ) ) {
  60. LifeCenterFunction.scriptMessage( response, "location.href='/accept/list';" );
  61. }
  62. } else {
  63. // LifeCenterFunction.scriptMessage( response, "alertBox({ txt: '약관 동의 후 서비스 이용이 가능합니다.', callBack : function(){ } });" );
  64. }
  65. } else {
  66. if( url.equals( "/accept/list" ) ) {
  67. response.sendRedirect( "/" );
  68. }
  69. if( sesPasswordChange != null ) {
  70. if( sesPasswordChange.equals( "REQUIRED" ) ) {
  71. if( !url.equals( "/staff/myinfo" ) ) {
  72. logger.info( "비밀번호 변경 필요 -> 비밀번호 변경 페이지로 이동" );
  73. if( !url.equals( "/common/passwordCheck" ) && !url.equals( "/staff/myinfo/update" ) && !url.equals( "/login/logout" ) ) {
  74. LifeCenterFunction.scriptMessage( response, "location.href='/staff/myinfo';" );
  75. }
  76. } else {
  77. LifeCenterFunction.scriptMessage( response, "alertBox({ txt: '비밀번호 보안 규정 변경으로 인하여 의무적으로 비밀번호 1회 변경 진행 후 서비스 이용이 가능합니다.', callBack : function(){ } });" );
  78. }
  79. } else if( sesPasswordChange.equals( "RESET" ) ) {
  80. if( !url.equals( "/staff/myinfo" ) ) {
  81. logger.info( "초기화 비밀번호로 로그인 -> 비밀번호 변경 페이지로 이동" );
  82. if( !url.equals( "/common/passwordCheck" ) && !url.equals( "/staff/myinfo/update" ) && !url.equals( "/login/logout" ) ) {
  83. LifeCenterFunction.scriptMessage( response, "location.href='/staff/myinfo';" );
  84. }
  85. } else {
  86. LifeCenterFunction.scriptMessage( response, "alertBox({ txt: '초기화 비밀번호로 로그인시 비밀번호 변경 후 서비스 이용이 가능합니다.', callBack : function(){ } });" );
  87. }
  88. }
  89. }
  90. }
  91. }
  92. } else if( url.equals( "/login/staff" ) || url.equals( "/login/admin" ) ) {
  93. if( session != null ) {
  94. if( groupIdx.equals( "1" ) ) {
  95. response.sendRedirect( "/center/list" );
  96. } else {
  97. response.sendRedirect( "/patient/list" );
  98. }
  99. return false;
  100. }
  101. }
  102. }
  103. return true;
  104. }
  105. @Override
  106. public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
  107. ModelAndView modelAndView) {
  108. //logger.info("Method Executed Time : postHandle");
  109. }
  110. @Override
  111. public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler,
  112. Exception ex) {
  113. //logger.info("Method Completed Time : afterCompletion");
  114. logger.info( "--------------------- InterCeptor afterCompletion ---------------------" );
  115. }
  116. }