- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 재능이의 돈버는 일기
- StresslessLife
- K_JIN2SM
- 소소한 일상
- My Life Style & Memory a Box
- Blog's generation
- 공감 스토리
- 취객의 프로그래밍 연구실
- Love Me
- Dream Archive
- 세상에 발자취를 남기다 by kongmingu
- hanglesoul
- 카마의 IT 초행길
- 느리게.
- 미친듯이 즐겨보자..
- Joo studio
- Gonna be insane
- 악 다 날아갔어!! 갇대밋! 왓더...
- xopowo05
- 맑은공기희망운동
- 엔지니어 독립운동
- 혁준 블로그
- Simple in Complex with Simple
- 무의식이 의식을 지배한다
목록Spring (15)
드럼치는 프로그래머
Spring Security - No visible WebSecurityExpressionHandler instance could be found in the application context I am having trouble displaying a logout link in a JSP page only if the user is authenticated. Here is the exception I have at this line of the JSP page: Exception:Stacktrace: .... root cause javax.servlet.jsp.JspException: No visible WebSecurityExpressionHandler instance could be found in..
로그아웃 동작 원리 모든 URL 요청은 서블릿 요청으로 리졸브 되기 전에 항상 스프링 시큐리티의 전체 필터 체인을 통과 시킵니다. 따라서 j_spring_security_logout에 대한 URL 요청이 시스템에 있는 JSP 페이지와 일치하지 않더라도 이 요청을 처리하기 위해 실제 JSP 나 스프링 MVC 대상 URL을 두지 않아도 됩니다. j_spring_security_logout 에 대한 URL 요청은 logoutFilter가 가로챕니다. logout-url 어트리뷰트에 지정한 로그아웃 URL을 감시하고 사용자를 로그아웃 시키는데 이때 다음 과정은 3단계로 나뉘어 집니다. 1. HTTP 세션 무효화(invalidate-session이 true로 설정된 경우) 2. SecurityContext 초기화..
multipart/form-data 경우 ?${_csrf.parameterName}=${_csrf.token} 일반 form sec:form 의 경우 생략 (다만 로그인 및 로그아웃은 일반 폼으로 지정해야하는 이상한버그) ajax var token = $("meta[name='_csrf']").attr("content"); var header = $("meta[name='_csrf_header']").attr("content"); $.ajax({ type : "POST", url : '', data : { userId : userId }, beforeSend: function(xhr) { // here it is xhr.setRequestHeader(header, token); }, dataType : ..
스프링 프레임웍 3.2 이상부터 @ControllerAdvice라는 어노테이션이 추가 되었습니다. 이 어노테이션을 사용하면 간단하게 익셉션 발생시 작업을 처리할 수가 있습니다. 방법은 간단합니다. 설정파일에 아래와 같이 설정합니다. 아래의 설정 내용은 따로 설명하지 않겠습니다. 이후 적당한 위치에 클래스를 하나 생성하여 @ControllerAdvice를 붙여주면 됩니다. package net.krespo.handler; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web...
간혹 스프링 트랜잭션을 적용하였는데 예외 발생 시 롤백이 되지 않을 때가 있다. 안되는 이유야 여러 가지가 있겠지만 난 그 중 한 가지 문제에 대해서 작성하려고 한다. 일단 테스트하는 스프링 애플리케이션 컨텍스트의 트랜잭션 AOP 설정은 다음과 같이 선언적 트랜잭션을 사용하였다. service 패키지 하위에 있는 모든 클래스 중 insert*, delete*, update* 이름에 매칭되는 메소드에 트랜잭션 설정 테스트 코드는 다음과 같다. 문제가 발생되는 원인에 대해서 보여주려고 실패 case에 대한 메소드를 생성하였다. @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {"/test-application-context...
다음과 같은 주소를 가진 웹페이지를 개발중이라고 가정한다. http://www.test:8080/contextPath/main.do 위 주소에서 http://www.test:8080 까지의 주소가 필요했다. HttpServletRequest 를 사용해서 위 주소를 추출해 보자. 방법은 여러가지가 있을 수 있다. 본 포스팅에서는 2가지 방법만 설명한다. 1. 각 정보들을 조합하여 만들기 1 request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort(); cs request 에는 서버의 정보들이 담겨있다. 그 정보중에서 scheme, server name, server port 를 가지고 주소를 조합할 수 있다. 물론 주소 중간에 ..
response.sendRedirect() 서버가 사용자의 브라우저를 지정한 URL 로 리다이렉트 시킬 수 있는 유용한 도구이다. Spring 에서는 Controller에서 반환 String에 "redirect:" 라는 prefix를 붙여주면 동일한 기능을 수행하게 되어서 Spring에서는 잘 사용하지 않고 있다. 그러나 interceptor와 같은 곳에서 redirect 시키도록 하기 위해서는 response.sendRedirect()를 반드시 사용해야한다. response.sendRedirect() 의 문제점 response.sendRedirect() 를 사용하면서 주의해야할 점은 저 메서드를 호출한다고 break가 걸리는게 아니라는것이다. 다시 설명하자면 throw new Exception() 을 ..
1. tiles란? 화면을 구성하는데 있어서 하나의 파일이 아닌 여러부분을 따로 작업해서 하나로 묶어 화면에 보여주는것을 말합니다. 예를들어서 한 화면에 레이아웃이 header, content, footer로 구성되어 있으면 각 부분을 파일로 만들어서 여러 페이지에서 내용만 바꿔가면서 모든페이지에 header와 footer를 보여주는것이 가능합니다. 물론 하나의 파일에 전부 때려박아도 가능은하지만.. 뭔가 수정할때 페이지수만큼 수정이 필요합니다. JSP에는 이미 include 기능이 있는데 굳이 tiles를 쓰는 이유가 있을까요? 저도 tiles를 전부 이해한게 아니라서 뭐라 설명은 못드리는데... 일단 include보다 편합니다. 그대신 사용하기전에 설정이 필요해요. 레이아웃 요소들부터 레이아웃의 틀까..
메인페이지에서 로그인 하였을 경우엔 로그아웃, 로그인을 하지 않았을 경우엔 로그인 버튼을 띄워주도록 하겠습니다. 시큐리티의 태그들을 사용하기 위해 taglibs 라이브러리를 추가해줍니다. pom.xml org.springframework.security spring-security-taglibs 이후, security taglib을 사용하겠다는 선언을 해주어야 합니다.security-context.xml에 http에 다음과 같이 추가합니다. security taglib을 사용하고 싶은 jsp 파일 상단에 다음과 같이 선언합니다. 이후 로그인/로그아웃 버튼을 띄워주고 싶은 곳에 security의 authorize 태그를 사용합니다. 로그인로그아웃 isAnonymous()는 익명사용자를 의미합니다.j_spr..
입력박스에서 소문자 입력시 대문자로 변경하게 하기위한 방법으로 1. onKeyUp="field.value.toUpperCase()" 로 자바스크립트 처리 2. style="text-transform: uppercase" 로 스타일시트 처리 뭐..대충 두가지 외에 다른 수로 가지고 있는 방법이 있겠지만.. 위 두가지 방법에는 한계가 있는데... 첫번째 방법은... 영문은 이상없이 잘 변경되나... 한글과 영문이 섞여있는 경우.. 한글을 입력하면 입력항목이 기존 입력내용이 지워져버리고 한글이 달랑 1자밖에 들어가지 않는 문제가 있다. 두번째 방법은.. 보기에는 대문자로 잘~ 나타나지만... Submit한경우.. 값을 받아보면 소문자이다. 위 두가지 방법외에 한가지를 더 소개하기전에 이벤트부터 설명하자면.....