'Spring Framework'에 해당되는 글 8건

  1. 2009.01.28 Spring framework 3.0
  2. 2009.01.08 First Ever Seoul Core Spring Course
  3. 2008.08.26 Srping Validation, Commons Validation으로 Form Validation
  4. 2008.08.11 Annotation 기반의 Spring Controller에서 Interceptor 사용하기
  5. 2008.08.08 FreeMarker as Sitemesh decorator
  6. 2008.08.01 이런 삽질을 하다니... DWR, Spring (2)
  7. 2008.07.30 Spring, Dojo DWR (2)
  8. 2008.07.22 Spring Framework Security Advisory (3)
2009.01.28 09:07

Spring framework 3.0

http://www.infoq.com/interviews/Spring-3.0-Rod-Johnson

시간내서 살펴봐야 겠다.
언제쯤 3.0이 발표될지 모르겠지만... 조만간이겠지..
신고
Trackback 0 Comment 0
2009.01.08 09:20

First Ever Seoul Core Spring Course

Hi Reeyan,

I am delighted to announce our first ever Seoul Core Spring Course, commencing on the 2nd March 2009. To celebrate our first Korean based course, the 10th person to register will be free.... In addition the registration fee covers a voucher to sit the Core Spring certification exam, valued at $240 AUD.

Core Spring is our four-day flagship Spring training course covering:

* The Spring Lightweight Container, including Inversion of Control
* Agile, domain-driven design techniques with Spring
* Effective JDBC and Hibernate data access
* Declarative transaction management
* Pragmatic AOP
* Unit testing in isolation
* Rapid system integration testing
* Introduction to "Spring Web"
* Remoting
* Web Services
* Spring Security
* JMS
* JMX

Register at http://www.springsource.com/training/spr001/icn20090302,   places are limited.

Yours Sincerely

Steve Morris- Regional Director Australasia
SpringSource Australasia Pty Limited - Spring from the Source
Suite 1001 , Level 10, 122 Arthur St North Sydney 2060 NSW

P +61-2-8404 0165            M +61-437-345-055
F +61-2-8404-0149
www.springsource.com

흐미 그런데 못가겠다.
3월은 TMS 막바지 준비 하는 시간이라서 어려울 것 같다. 2월만 되어도, 좀 큰돈이긴 하지만 잘 하면 회사에서 지원해 줄지도 모르는데.
아이고 아쉬워라.

그것보다 한국에서 이런 코스를 한다는게 더 즐겁다. 비록 참석하지는 못하겠지만, 이런 코스가 열리는것 자체가 한국 시장이 그만큼 성숙했다는 증거일 수도 있다.

혹시 그 한국 스프링을 이끄시는 이일민 님인가가 호주로 이민 가셨다는것 같은데, 그분들이 호주 스프링에서 한국을 타켓으로 하는게 아닐까 한다.

아무튼 아쉽다 아쉬워.... 정말로 주옥같은 시간이 될 것 같은데 말야..

뭐 이건 그렇다 치고, WWDC 좀 어케 안되겠냐? ㅎㅎ
신고
Trackback 0 Comment 0
2008.08.26 11:06

Srping Validation, Commons Validation으로 Form Validation

개인적으로 Server Side Validation을 선호하지만, 회사에서는 Javascript Validation을 선호하고 있다.
그래서 어쩔 수 없이 Javascript로 Validation결과를 Alert로 보여줘야 한다.
그 동안은 직접 Javascript 함수를 만들어서 사용했었다.
그런데 이번에 Spring Module의 Validation 기능을 사용하고 있다. 내부적으로는 Apache Commons Validation을 사용한다.
Submit을 할 때 reurun validateFormName(form) 메소드를 호출해 주면 된다.
그런데 이넘이 내부적으로 어떻게 작동하는지 제대로 보지 않았다. 그런데 코드를 봐 보니 false, true를 return 하고 있었다.
그래서 onsubmit에서 항상 이 메소드를 호출할 필요 없이 그냥 다른 메소드를 호출하고, 그 메소드에서 필요한 작업을 수행한 다음 이 메소드를 연쇄 호출해 주면 된다.

if(validateRegisterAdmin(document.getElementById("registerAdmin"))) {
    //logic
}

이렇게 말이다.
신고
Trackback 0 Comment 0
2008.08.11 18:02

Annotation 기반의 Spring Controller에서 Interceptor 사용하기

Annotation 기반의 Spring Controller를 사용하는 환경에서는 Annotation을 이용해서 Interceptor를 설정할 수 없다.
그래서 다음과 같이 Interceptor를 설정한다.
<bean id="annotationMapper" class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
<property name="interceptors">
<list>
<ref bean="myInterceptor1"/>
<ref bean="myInterceptor2"/>
<ref bean="myInterceptor3"/>
</list>
</property>
</bean>

그런데 이 경우 모든 Annotation 기반의 Controller에 적용되어 버린다는 문제점이 있다고 한다.
그래서 다음 블로그의 저자가 손쉽게 해결 할 수 있는 클래스를 구현했다.
블로그는 다음과 같다.
두 개의 public 클래스를 제공한다.
  • SelectedAnnotationHandlerMapping
  • IgnoreSelectedAnnotationHandlerMapping
첫번째 클래스는 설정한 url만 Interceptor 가 작동하고, 두번째는 설정한 url은 interceptor가 작동되지 않는다.
설정 예제는 다음과 같다.
  • SelectedAnnotationHandlerMapping
<bean id="publicMapper" class="org.springplugins.web.SelectedAnnotationHandlerMapping">
<property name="urls">
<list>
<value>/interceptOnly.do</value>
</list>
</property>
<property name="interceptors">
<list>
<ref bean="myInterceptor"/>
</list>
</property>
</bean>

  • IgnoreSelectedAnnotationHandlerMapping
<bean id="publicMapper" class="org.springplugins.web.IgnoreSelectedAnnotationHandlerMapping">
<property name="order"><value>0</value></property>
<property name="urls">
<list>
<value>/doNotIntercept.do</value>
</list>
</property>
<property name="interceptors">
<list>
<ref bean="myInterceptor"/>
</list>
</property>
</bean>
신고
Trackback 0 Comment 0
2008.08.08 16:02

FreeMarker as Sitemesh decorator

Spring, FreeMarker, Sitemesh를 이용하는 프로젝트 설정 방법에 대한 사이트 주소

신고
Trackback 0 Comment 0
2008.08.01 13:15

이런 삽질을 하다니... DWR, Spring

Spring 2.5.5, DWR 2.0 으로 프로젝트를 설정하고 있다. Spring 2.5부터 지원이 되는 Annotation 기반의 Controller를 사용하려고 설정을 했다.
그런데 문제가 발생했다. DWR을 함께 사용해야 하는데, 아무리 설정을 해도 DWR JavaScript을 인식하지 못하는 것이다. 이게 무슨 문제인지 알 수 없어서 어제, 오늘 오전까지 무지하게 삽질만 한 것 같다.
DWR을 쓰려면 Annotation Controller를 사용하면 안된다.
흠.. 이제 한고비 지난 것 같다.
다음은 뭐가 기다리고 있을련지...
신고
Trackback 0 Comment 2
2008.07.30 11:46

Spring, Dojo DWR

Spring MVC로 Web Application을 만들 때 어떤 Ajax 툴킷을 사용해야 할지 고민이 많다.
그동안은 아주 간단한 ajax 라이브러리를 이용해서 완전히 날 코딩을 했었다. JavaScript도 직접 핸들링 하고...
아 얼마나 생산성이 떨이졌던지..
이제 좀 더 편한 방법을 도전해 봐야 겠다.

Dojo
DWR

이 두 프레임웍이 눈에 띈다. 물론 GWT 가 있지만..
어떤 프레임웍이 Spring MVC와 가장 잘 어울릴지 모르겠다.
우선 Dojo, DWR과 Spring MVC에 관련된 글 모음이다.

AJAX Enabled Controllers in Spring MVC
Spring & DWR - Ajax made Easy
Integrating Spring & DWR
Spring에서 DWR Annotation 사용하기

잘 봐야 겠다. 어차피 Web Application을 개발하려면 넘어야 할 산 중에 하나인것 같다.

바퀴를 다시 만들 필요는 없지 않은가... ^^
신고
Trackback 0 Comment 2
2008.07.22 09:47

Spring Framework Security Advisory

Java 로 Web 개발을 한다면, Spring Framework을 사용할 것이다. Agile 방법론에 의해서 엄청난 개발 향상을 가져온다.
Java 기반 Web 개발에 있어서 없어서는 안될 그런 존재가 되어버린 엄청난 Framework이다.
그런데 밝은 면이 있으면 항상 어두운 면이 있기 마련이다.
이런 Spring Framework에서 아주 심각한 보안 결점이 발견 되었다고 한다.

  • MVC에서 Model View 부분에서 바인딩 하는 로직에서 발생하는 것
  • MVC View를 렌더할 때 해당 이름으로 View를 찾는데 이 이름을 사용자가 제어하는 경우
라는 내용이다

현재 Spring에서도 인식을 하고 이떨헤 해야 할 지를 가이드 하고 있다.
하지만 현재로서는 방법이 없다고 한다. 이 내용을 2004년에 이미 알고 Spring 측에 통보 했지만 그땐 별 심각하게 받아 드리지 않고 그냥 지나쳤다고 한다.
이 문제를 찾아낸 Lab에서 말하는 대처 방법이다. 원문을 그대로..

  • Never directly use data that a user can control, through hidden fields, cookies, or direct form submissions to control the actual views that are rendered in the MVC pattern.
  • Always use the setAllowedFields method to limit the auto-binding of all fields to only those fields that are required for the form.
  • Remember that validation is not just about protecting against SQL injection and cross-site scripting (XSS), but you need to validate all data that can be used to control a business process.

관련된 링크는 다음과 같다.


Spring Framework에서 제안하는 예방법이다.

To prevent the Data Submission to Non-Editable Fields issue from occurring, the DataBinder should be configured explicitly with the set of fields that are allowed for binding. To do this, set the "allowedFields" property on each DataBinder instance you work with in your application. Below is an example of how to do this with each major Controller implementation:
  • SimpleFormController - Override initBinder(HttpServletRequest, ServletRequestDataBinder) and call setAllowedFields(String[]) on the provided ServletRequestDataBinder instance.
  • MultiActionController - Call setAllowedFields on any ServltRequestDataBinder instance you instantiate locally within a handler method body.
  • @Controller - Use the @InitBinder annotation to inject a WebDataBinder into a method used to configure it explicitly. Call setAllowedFields(String []) to restrict the fields allowed for that Controller class. If the set of allowedFields needs to vary per handler method, have your @InitBinder method accept a HttpServletRequest and key off the current request mapping.
  • AbstractWizardFormController - Override initBinder(HttpServletRequest, ServletRequestDataBinder) and call setAllowedFields(String[]) on the provided DataBinder instance. Call getCurrentPage(HttpServletRequest) to configure the set of allowed fields per page.

To prevent the ModelView Injection issue from occurring, simply never allow the client to select the view name. View name selection is a server-side responsibility.
신고
Trackback 0 Comment 3


티스토리 툴바