Spring에서 webjars 적용하는 방법

Maven Repository나 다른 곳에서 webjars를 검색한다.

pom.xml에 추가한다.


pom.xml



servlet-context에 주소를 매핑한다.


servlet-context.xml


Java configuration을 사용할 경우에는 아래와 같이 설정한다.


WebConfig.java



JSP에서 호출한다.

Example1)

http://localhost/webjars/jquery/3.1.1-1/jquery.min.js

http://localhost/webjars/jqgrid/4.7.0/css/ui.jqgrid.css


Example2)




Reference

[1] [블로그개발_06] webjars를 이용한 bootstrap, jquery 적용해보기 (Spring Boot) (http://millky.com/@origoni/post/1147?language=ko_kr)

[2] 허니몬의 자바 | webjars란 무엇인가? (http://java.ihoney.pe.kr/428)


저작자 표시 비영리 변경 금지
신고

Leave a Comment

Spring Security를 커스터마이징하기 위해서는 그리고 이해하기 위해서는 아래 필터 체인을 이해하는 것이 좋다.

아래 그림은 인터넷에 돌아다니는 Spring Security 호출 그림을 내가 다시 깔끔하게 그려본 것이다.




Table 3.1. Standard Filter Aliases and Ordering
(https://docs.spring.io/spring-security/site/docs/3.1.x/reference/ns-config.html)


AliasFilter ClassNamespace Element or Attribute
CHANNEL_FILTERChannelProcessingFilterhttp/
intercept-url
@requires-channel
SECURITY_CONTEXT_FILTERSecurityContextPersistenceFilterhttp
CONCURRENT_SESSION_FILTERConcurrentSessionFiltersession-management/
concurrency-control
LOGOUT_FILTERLogoutFilterhttp/logout
X509_FILTERX509AuthenticationFilterhttp/x509
PRE_AUTH_FILTERAstractPreAuthenticatedProcessingFilter SubclassesN/A
CAS_FILTERCasAuthenticationFilterN/A
FORM_LOGIN_FILTERUsernamePasswordAuthenticationFilterhttp/form-login
BASIC_AUTH_FILTERBasicAuthenticationFilterhttp/http-basic
SERVLET_API_SUPPORT_FILTERSecurityContextHolderAwareRequestFilterhttp/
@servlet-api-provision
JAAS_API_SUPPORT_FILTERJaasApiIntegrationFilterhttp/
@jaas-api-provision
REMEMBER_ME_FILTERRememberMeAuthenticationFilterhttp/remember-me
ANONYMOUS_FILTERAnonymousAuthenticationFilterhttp/anonymous
SESSION_MANAGEMENT_FILTERSessionManagementFiltersession-management
EXCEPTION_TRANSLATION_FILTERExceptionTranslationFilterhttp
FILTER_SECURITY_INTERCEPTORFilterSecurityInterceptorhttp
SWITCH_USER_FILTERSwitchUserFilterN/A



API Document

- Spring Security 3.1.7 API Docs

Spring Javadocs 3.1.7

Spring Javadocs Current


- Spring Security Filter Chain

Spring Javadocs 3.1.x

Spring Javadocs Current


Filter Class

- SecurityContextPersistenceFilter

Spring Javadocs 3.1.7

Spring Javadocs Current


- LogoutFilter

Spring Javadocs 3.1.7

Spring Javadocs Current


UsernamePasswordAuthenticationFilter

Spring Javadocs 3.1.7

Spring Javadocs Current


DefaultLoginPageGeneratingFilter

Spring Javadocs 3.1.7

Spring Javadocs Current


BasicAuthenticationFilter

Spring Javadocs 3.1.7

Spring Javadocs Current


- RememberMeAuthenticationFilter

Spring Javadocs 3.1.7

Spring Javadocs Current


- SecurityContextHolderAwareRequestFilter

Spring Javadocs 3.1.7

Spring Javadocs Current


- AnonymousAuthenticationFilter

Spring Javadocs 3.1.7

Spring Javadocs Current


- SessionManagementFilter

Spring Javadocs 3.1.7

Spring Javadocs Current


- ExceptionTranslationFilter

Spring Javadocs 3.1.7

Spring Javadocs Current


- FilterSecurityInterceptor

Spring Javadocs 3.1.7

Spring Javadocs Current



Authentication class

- SecurityContextHolder

Spring Javadocs 3.1.7

Spring Javadocs Current



Authentication interface

- SecurityContextRepository

Spring Javadocs 3.1.7

Spring Javadocs 3.1.7


- SecurityContext

Spring Javadocs 3.1.7

Spring Javadocs Current


- LogoutSuccessHandler

Spring Javadocs 3.1.7

Spring Javadocs Current


- Authentication

Spring Javadocs 3.1.7

Spring Javadocs Current


- AuthenticationManager

Spring Javadocs 3.1.7

Spring Javadocs Current


- AuthenticationProvider

Spring Javadocs 3.1.7

Spring Javadocs Current


- UserDetails

Spring Javadocs 3.1.7

Spring Javadocs Current


- AuthenticationSuccessHandler

Spring Javadocs .3.1.7

Spring Javadocs .Current


- UserDetailService

Spring Javadocs 3.1.7

Spring Javadocs Current


- GrantedAuthority

Spring Javadocs 3.1.7

Spring Javadocs Current


- AuthenticationFailureHandler

Spring Javadocs 3.1.7

Spring Javadocs Current


- SessionAuthenticationStrategy

Spring javadocs 3.1.7

Spring javadocs Current


- SessionRegistry

Spring javadocs 3.1.7

Spring javadocs Current


- RequestCache

Spring Javadocs 3.1.7

Spring Javadocs Current




Authorization interface

- AuthenticationEntryPoint

Spring Javadocs 3.1.7

Spring Javadocs Current


- AccessDeniedHandler

Spring javadocs 3.1.7

Spring javadocs Current


- AccessDecisionManager

Spring Javadocs 3.1.7

Spring Javadocs Current


- AccessDecisionVoter

Spring Javadocs 3.1.7

Spring Javadocs Current


- SecurityMetadataSource

Spring Javadocs 3.1.7

Spring Javadocs Current




Authorization class

- AffirmativeBased

implemented : AccessDecisionManager

Spring Javadocs 3.1.7

Spring Javadocs Current


- RoleVoter

implemented : AccessDecisionVoter

Spring Javadocs 3.1.7

Spring Javadocs Current


- AuthenticationVoter

- DefaultMethodSecurityExpressionHandler 

implemented : MethodSecurityExpressionHandler, SecurityExpressionHandler

Spring Javadocs 3.1.7

Spring Javadocs Current


- AbstractAuthenticationToken 

implemented : Authentication

Spring Javadocs 3.1.7

Spring Javadocs Current

github java source


- AnonymousAuthenticationToken 

implemented : Authentication

Spring Javadocs 3.1.7

Spring Javadocs Current

github java source


- UsernamePasswordAuthenticationToken 

implemented : Authentication

Spring Javadocs 3.1.7

Spring Javadocs Current

github java source




저작자 표시 비영리 변경 금지
신고

Leave a Comment

SpringSecurity를 설정하다보니 Method레벨(global-method-security)에서의 AccessDeniedException은 그 전에 설정해놓은 <access-denied-handler>에 걸리지 않는 것을 알게 되었다.


왜 그런가 찾다보니 스택오버플로우[1]에서 답을 찾았는데

내 상황이 답을 준것처럼 처리하기에는 정확히 맞지 않는 상황이었다.


- StackOverFlow 번역 -

access-denied-handler는 AccessDeniedException가 발생할 때 ExceptionTranslationFilter에 의해 사용됩니다.

그러나 org.springframework.web.servlet.DispatcherServlet은 먼저 예외 처리를 시도했다.

특히 defaultErrorView로 정의 된 org.springframework.web.servlet.handler.SimpleMappingExceptionResolver가 있는데, 결과적으로 SimpleMappingExceptionResolver는 적절한 뷰로 리디렉션하여 예외를 소비하므로 결과적으로 ExceptionTranslationFilter에 버블링 될 예외가 없습니다.


수정은 간단했다. 모든 AccessDeniedException을 무시하도록 SimpleMappingExceptionResolver를 구성하십시오.


applicationContext.xml


이제는 AccessDeniedException이 발생할 때마다 SimpleMappingExceptionResolver를 무시하고 ExceptionTranslationFilter를 통해 예외 처리를 하게 됩니다.



- 내 해결 방식 -

내 프로젝트에서는 위와 같이 설정하기 난해한 부분이 있어서 중복이여서 아쉽지만 web.xml에 이동 페이지를 설정하게 해주었다.


web.xml



Reference

[1] Spring Security ignoring access-denied-handler with Method Level Security (http://stackoverflow.com/questions/21171882/spring-security-ignoring-access-denied-handler-with-method-level-security)



저작자 표시 비영리 변경 금지
신고

Leave a Comment


to Top

티스토리 툴바