Spring security์—์„œ Ajax ํ˜ธ์ถœ์‹œ ์„ธ์…˜ ์ฒดํฌ๋Š” ์–ด๋–ป๊ฒŒ ํ•˜๋‚˜์š”?

6,744 views
Skip to first unread message

Mark

unread,
Mar 31, 2014, 8:42:50โ€ฏPM3/31/14
to ks...@googlegroups.com
์•ˆ๋…•ํ•˜์„ธ์š”?

์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์•„์ฃผ ๊ธฐ๋ณธ์ ์ธ ๊ฒƒ๋งŒ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์›น๋ธŒ๋ผ์šฐ์ €์—์„œ Ajax๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ํŽ˜์ด์ง€๋“ค์ด ๋งŽ์ด ์žˆ๋Š”๋ฐ, Ajax ํ˜ธ์ถœ์˜ ๊ฒฝ์šฐ๋Š” ์–ด๋–ป๊ฒŒ ์„ธ์…˜์„ ์ฒดํฌํ•ด์„œ ์„ธ์…˜์ด ์•„์›ƒ๋œ ๊ฒฝ์šฐ์—๋Š” ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€๋ฅผ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธํ•˜๊ฑฐ๋‚˜ ์ ์ ˆํ•œ ๋ฉ”์„ธ์ง€๋ฅผ ๋ฆฌํ„ดํ•˜๊ณ  ์‹ถ์€๋ฐ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์ข‹์„๊นŒ์š”? ๊ตฌ๊ธ€ ์ฐพ์•„๋ณด๋ฉด ๋ฐฉ๋ฒ•๋“ค์ด ์ด๊ฒƒ ์ €๊ฒƒ ์ข€ ๋งŽ์€ ๊ฒƒ ๊ฐ™์€๋ฐ, ์Šคํ”„๋ง์˜ ์˜๋„์— ๋งž๋Š” ์ ์ ˆํ•œ ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๊น€์„ฑ๊ตญ

unread,
Apr 1, 2014, 3:58:50โ€ฏAM4/1/14
to ks...@googlegroups.com
springsprout ์†Œ์Šค์ชฝ์„ ์ฐธ์กฐํ•ด๋ณด์‹œ๋ฉด... AjaxTimeoutFilter ์ธ๊ฐ€ ํ•˜๋Š” ํด๋ž˜์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

SpringSecurityFilter ๋‹จ์˜ ๋งˆ์ง€๋ง‰์— ๋“ฑ๋กํ•ด์„œ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์‘๋‹ต์„ ์ œ์–ดํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

AccessDeniedException์„ ์žก์•„๋‚ด์„œ ์ธ์ฆ ํ† ํฐ์ด AnonymousAuthenticationToken์ผ ๊ฒฝ์šฐย 
HttpServletResponse.SC_UNAUTHORIZED(401)
์•„๋‹Œ๊ฒฝ์šฐ HttpServletResponse.SC_FORBIDDEN(403) ์œผ๋กœ ๋ฐ˜ํ™˜์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์„ ์ €๋Š” ์“ฐ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์„œ๋ฒ„์™€ ajaxํ†ต์‹ ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ณตํ†ต ๋ชจ๋“ˆ์—์„œ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ํ•ด๋‹น ์ƒํƒœ์ฝ”๋“œ์— ๋”ฐ๋ผ ๋กœ๊ทธ์ธ์„ ๋„์šฐ๋˜๊ฐ€, ๊ถŒํ•œ ๋ถ€์กฑ ์•ˆ๋‚ด ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•˜๋ฉด ๋˜๊ฒ ์ฃ ...

springsprout์ชฝ ์†Œ์Šค๋ฅผ ์ž˜ ์‚ดํŽด๋ณด์‹œ๋ฉด, ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๋™์ผํ•œ ๋ฌธ์ œ๋กœ ๊ณ ๋ฏผํ•œ ํ”์ ์ด ๋ณด์ž…๋‹ˆ๋‹ค.
๊ทธ๋Œ€๋กœ ๋Œ์•„๊ฐ€๊ณ  ์žˆ๋Š” ์†Œ์Šค์ด๊ธฐ๋„ ํ•˜๊ตฌ์š”.. ๋งŽ์€ ์ฐธ๊ณ ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ^^



2014๋…„ 4์›” 1์ผ ์˜ค์ „ 9:42, Mark <mark.sun...@gmail.com>๋‹˜์ด ์ž‘์„ฑ:
์•ˆ๋…•ํ•˜์„ธ์š”?

์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์•„์ฃผ ๊ธฐ๋ณธ์ ์ธ ๊ฒƒ๋งŒ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์›น๋ธŒ๋ผ์šฐ์ €์—์„œ Ajax๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ํŽ˜์ด์ง€๋“ค์ด ๋งŽ์ด ์žˆ๋Š”๋ฐ, Ajax ํ˜ธ์ถœ์˜ ๊ฒฝ์šฐ๋Š” ์–ด๋–ป๊ฒŒ ์„ธ์…˜์„ ์ฒดํฌํ•ด์„œ ์„ธ์…˜์ด ์•„์›ƒ๋œ ๊ฒฝ์šฐ์—๋Š” ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€๋ฅผ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธํ•˜๊ฑฐ๋‚˜ ์ ์ ˆํ•œ ๋ฉ”์„ธ์ง€๋ฅผ ๋ฆฌํ„ดํ•˜๊ณ  ์‹ถ์€๋ฐ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์ข‹์„๊นŒ์š”? ๊ตฌ๊ธ€ ์ฐพ์•„๋ณด๋ฉด ๋ฐฉ๋ฒ•๋“ค์ด ์ด๊ฒƒ ์ €๊ฒƒ ์ข€ ๋งŽ์€ ๊ฒƒ ๊ฐ™์€๋ฐ, ์Šคํ”„๋ง์˜ ์˜๋„์— ๋งž๋Š” ์ ์ ˆํ•œ ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

--
์ด ๋ฉ”์ผ์€ Google ๊ทธ๋ฃน์Šค 'Korea Spring User Group Q&A' ๊ทธ๋ฃน์— ๊ฐ€์ž…ํ•œ ๋ถ„๋“ค์—๊ฒŒ ์ „์†ก๋˜๋Š” ๋ฉ”์‹œ์ง€์ž…๋‹ˆ๋‹ค.
์ด ๊ทธ๋ฃน์—์„œ ํƒˆํ‡ดํ•˜๊ณ  ๋” ์ด์ƒ ์ด๋ฉ”์ผ์„ ๋ฐ›์ง€ ์•Š์œผ๋ ค๋ฉด ksug+uns...@googlegroups.com์— ์ด๋ฉ”์ผ์„ ๋ณด๋‚ด์„ธ์š”.
http://groups.google.com/group/ksug์—์„œ ์ด ๊ทธ๋ฃน์„ ๋ฐฉ๋ฌธํ•˜์„ธ์š”.
์›น์—์„œ ์ด ํ† ๋ก ์„ ๋ณด๋ ค๋ฉด https://groups.google.com/d/msgid/ksug/da1c3f26-5cbf-49ff-afcb-f15321b12796%40googlegroups.com์„(๋ฅผ) ๋ฐฉ๋ฌธํ•˜์„ธ์š”.
๋” ๋งŽ์€ ์˜ต์…˜์„ ๋ณด๋ ค๋ฉด https://groups.google.com/d/optout์„(๋ฅผ) ๋ฐฉ๋ฌธํ•˜์„ธ์š”.



--
-----------------------------------
sungko...@gmail.com
010-3339-1286
๊น€ ์„ฑ๊ตญ
-----------------------------------

namkyu Lee

unread,
Apr 1, 2014, 6:47:46โ€ฏAM4/1/14
to ks...@googlegroups.com
์•„๋ž˜ URL๋„ ์ฐธ๊ณ ํ•˜์‹œ๋ฉด ์ข‹์„ ๋“ฏ ์‹ถ์Šต๋‹ˆ๋‹ค. (client ์ฝ”๋“œ๋„ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.)
http://lng1982.tistory.com/170



2014๋…„ 4์›” 1์ผ ์˜คํ›„ 4:58, ๊น€์„ฑ๊ตญ <sungko...@gmail.com>๋‹˜์ด ์ž‘์„ฑ:
์›น์—์„œ ์ด ํ† ๋ก ์„ ๋ณด๋ ค๋ฉด https://groups.google.com/d/msgid/ksug/CAN9CyYBd-0CJbuzeJqNwzCzm-AE5Dv8FQh7hxBHe_3tmWX-PaQ%40mail.gmail.com์„(๋ฅผ) ๋ฐฉ๋ฌธํ•˜์„ธ์š”.

์ž„ํ˜„์„ฑ

unread,
Apr 1, 2014, 10:12:52โ€ฏPM4/1/14
to ks...@googlegroups.com
๊ธฐ๋ณธ์ ์œผ๋กœ ajax polling์„ ์ด์šฉํ•ด์„œ checkํ•ด์•ผ ํ•˜๋Š”๊ฒƒ์œผ๋กœ ํŒ๋‹จํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

secuity filter์ค‘์—ย SessionManagementFilter ๋ผ๋Š” ๋†ˆ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ filter์— InvalidSessionStrategy ๋ผ๋Š”๊ฒƒ์œผ๋กœ request๊ฐ€ ๋“ค์–ด์˜ฌ๊ฒฝ์šฐ session filter์—์„œ checkํ•ด์„œ handler๋กœ ๋ณด๋‚ด๋ฒ„๋ฆฌ๋Š” ์ „๋žต์ž…๋‹ˆ๋‹ค.ย 

์œ„์˜ namkyu๋‹˜์ด ์ œ์•ˆํ•˜๋Š” ๋ฐฉ์‹๊ณผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค๋งŒ, session listener๋“ฑ์„ ํ†ตํ•ด์„œ ๋น„๋™๊ธฐ ์ด๋ฒคํŠธ๋ฅผ ๋ณด๋‚ด๋ฒ„๋ฆฌ๋Š” ๋ฐฉ์‹๋„ ์žˆ์Šต๋‹ˆ๋‹ค๋งŒ.(์ƒ๊ฐ๋งŒ ํ•˜๊ณ  ๊ตฌํ˜„์€..์ฟจ๋Ÿญ;;)

EXCEPTION_TRANSLATION_FILTER ์—์„œ ๊ตฌํ˜„ํ•˜๋Š”๊ฒƒ๋„ ๊ณ ๋ฏผ์„ ํ•ด๋ดค์ง€๋งŒ; session filter,๊ฐ€ ์žˆ์œผ๋‹ˆ๊นŒ๊ฐ€ ๊ธฐ๋ณธ์ „์ œ์—ฌ์„œ __);;

ajax ์ด๋‹ˆ respnse code๋ฅผ customํ•œ ๊ฐ’์œผ๋กœ ์ž„์˜๋กœ ๋งŒ๋“ค์–ด์„œ ajax error์—์„œ handlingํ•˜๋Š” ๋ฐฉ์‹์€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.ย 

์•„๋ž˜์™€ ๊ฐ™์ด js์—์„œ statusCode์— ๋Œ€ํ•œ session timeout handler method๋˜๋Š” class์—์„œ ์ฒ˜๋ฆฌํ•˜๋„๋ก ํ•˜์˜€์Šต๋‹ˆ๋‹ค.ย 


$.ajaxSetup({
statusCode:ย 
{
901: sessionTimeOutModal
}
});


public class CustomInvalidSessionStrategy implements InvalidSessionStrategy {
private Logger logger = LoggerFactory.getLogger(getClass());
private RequestMatcher requestMatcher = new ELRequestMatcher("hasHeader('X-Requested-With','XMLHttpRequest')");
@Override
public void onInvalidSessionDetected(HttpServletRequest request,
HttpServletResponse response) throws IOException, ServletException {
// TODO Auto-generated method stub
boolean ajaxRedirect = requestMatcher.matches(request);
if(ajaxRedirect) {
logger.debug("Session expired due to ajax request, starting a new session and redirect to requested status '{}'", 901);
response.setContentType(MediaType.APPLICATION_JSON_VALUE);
response.sendError(901, "SESSION_TIMED_OUT");
} else {
String requestURI = getRequestUrl(request);
logger.debug("Session expired due to non-ajax request, starting a new session and redirect to requested url '{}'", requestURI);
request.getSession(true);
response.sendRedirect(requestURI);
}

}
private String getRequestUrl(HttpServletRequest request) {
ย  ย  ย  ย  StringBuffer requestURL = request.getRequestURL();
ย 
ย  ย  ย  ย  String queryString = request.getQueryString();
ย  ย  ย  ย  if (StringUtils.hasText(queryString)) {
ย  ย  ย  ย  ย  ย  requestURL.append("?").append(queryString);
ย  ย  ย  ย  }
ย 
ย  ย  ย  ย  return requestURL.toString();
ย  ย  }

}


์›น์—์„œ ์ด ํ† ๋ก ์„ ๋ณด๋ ค๋ฉด https://groups.google.com/d/msgid/ksug/CAATmm-497VCqUOp0CKSK1Yt4gyWBVV_Zan%2Bu4rFyjzJFcfy7AQ%40mail.gmail.com์„(๋ฅผ) ๋ฐฉ๋ฌธํ•˜์„ธ์š”.

Mark Sunghun Park

unread,
Apr 9, 2014, 2:16:48โ€ฏAM4/9/14
to ks...@googlegroups.com
๋‹ต๋ณ€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋งŽ์€ ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.


์›น์—์„œ ์ด ํ† ๋ก ์„ ๋ณด๋ ค๋ฉด https://groups.google.com/d/msgid/ksug/CAHo3_-3-a-YCWUCErd0u%2B5QQZ3uOZe3b3MGS-r5%3DN%2BZH2a24Pg%40mail.gmail.com์„(๋ฅผ) ๋ฐฉ๋ฌธํ•˜์„ธ์š”.

Mark Sunghun Park

unread,
Apr 9, 2014, 2:17:22โ€ฏAM4/9/14
to ks...@googlegroups.com
๋„ค.ย  ์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค. ์ž˜ ์ฐธ๊ณ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.


์›น์—์„œ ์ด ํ† ๋ก ์„ ๋ณด๋ ค๋ฉด https://groups.google.com/d/msgid/ksug/CAN9CyYBd-0CJbuzeJqNwzCzm-AE5Dv8FQh7hxBHe_3tmWX-PaQ%40mail.gmail.com์„(๋ฅผ) ๋ฐฉ๋ฌธํ•˜์„ธ์š”.
Reply all
Reply to author
Forward
0 new messages