블로그 이미지
올해목표 // 10월 어학연수 떠나자~ 자수씨

카테고리

전체글 (1457)
Brand New! (28)
주절주절 (213)
MOT (11)
해외쇼핑 (49)
쇼핑노트 (150)
취미생활 (94)
iPhone (4)
Eclipse (121)
Google (83)
Spring (31)
JAVA (176)
JavaScript (59)
WEB (49)
Database (20)
OS (26)
Tools (8)
Tips (26)
IT정보 (1)
Book (21)
Programming (37)
외부행사 (43)
주변인들 (17)
여행노트 (60)
학교생활 (30)
회사생활 (52)
사회생활 (5)
외국어공부 (12)
잡동사니 (30)
Total
Today
Yesterday
 
01-07 08:49
 

달력

« » 2025.1
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 31
 

최근에 올라온 글

최근에 달린 댓글


https://sourcesup.cru.fr/projects/cas4net 에서 casModule을 다운받습니다.

압축을 풀고 casModule.dll 파일을 어플리케이션의 bin 디렉토리에 casModule.dll 파일을 붙여 넣습니다.


CAS Server에 대한 URL을 설정합니다.

<appSettings>

        <add key="loginUrl" value="https://cas.server/login" />

        <add key="validateUrl" value="https://cas.server/serviceValidate" />

        <add key="logoutUrl" value="https://cas.server/logout" />

</appSettings>

‘CasModule’ httpModule  system.web 섹션 내부에 추가합니다.

<system.web>

        ...

        <httpModules>

               <add name="CasModule" type="Upmc.CasModule.CasModule, CasModule"/>

        </httpModules>

        ...

</system.web>

system.web 섹션에 인증과 권한을 설정합니다.

<system.web>

        ...

        <authentication mode="None">

        </authentication>

        <authorization>

               <allow users="*"/>

        </authorization>

        ...

</system.web>

Web Application을 재 시작하여 CAS Login 페이지가 나오게 되면 정상입니다.


참고자료: http://www.ja-sig.org/wiki/display/CASC/.Net+Http+module


Posted by 자수씨
, |

아래 사이트에서 최신버전 CAS Client를 다운받습니다.

http://www.ja-sig.org/downloads/cas-clients/cas-client-3.1.10-release.zip

다운 받은 라이브러리에서 /modules 디렉토리에 있는 jar 파일들을 /WEB-INF/lib 에 배포합니다.

web.xml 수정

Web application web.xml에 다음과 같은 servlet-filter를 추가합니다.

<!-- CAS:START - Java Client Filters -->

<filter>

   <filter-name>CasSingleSignOutFilter</filter-name>

   <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>

</filter>

<filter>

  <filter-name>CasAuthenticationFilter</filter-name>

  <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>

  <init-param>

    <param-name>casServerLoginUrl</param-name>

    <param-value>https://cas.institution.edu/cas/login</param-value>

  </init-param>

  <init-param>

    <param-name>serverName</param-name>

    <param-value>https://jira.institution.edu/jira/</param-value>

  </init-param>

</filter>

<filter>

    <filter-name>CasValidationFilter</filter-name>

    <filter-class>org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class>

    <init-param>

        <param-name>casServerUrlPrefix</param-name>

        <param-value>https://cas.institution.edu/cas</param-value>

    </init-param>

    <init-param>

        <param-name>serverName</param-name>

        <param-value>https://jira.institution.edu/jira/</param-value>

    </init-param>

    <init-param>

        <param-name>redirectAfterValidation</param-name>

        <param-value>true</param-value>

    </init-param>

</filter>

<!--- CAS:END -->

     붉은 색 볼드 형식은 추후 설정에 따라 바뀔 수 있습니다.

servlet-filter mapping이 되는 filter-mapping을 추가합니다.

해당 Web application의 시작 페이지가 /login.jsp라면 아래와 같이 설정을 합니다.

<!-- CAS:START - Java Client Filter Mappings -->

<filter-mapping>

   <filter-name>CasSingleSignOutFilter</filter-name>

   <url-pattern>/*</url-pattern>

</filter-mapping>

<filter-mapping>

    <filter-name>CasAuthenticationFilter</filter-name>

    <url-pattern>/login.jsp</url-pattern>

</filter-mapping>

<filter-mapping>

    <filter-name>CasValidationFilter</filter-name>

    <url-pattern>/*</url-pattern>

</filter-mapping>

<!-- CAS:END -->

Single Sign Out listener를 추가합니다.

<!-- CAS:START - Java Client Single Sign Out Listener -->

<listener>

    <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>

</listener>

<!-- CAS:END -->

Web Application을 재 시작하여 CAS Login 페이지가 나오게 되면 정상입니다.


참고자료: http://www.ja-sig.org/wiki/display/CASC/CAS+Client+for+Java+3.1

 

 

Posted by 자수씨
, |

생전에 접해볼 생각도 안해봤던 서블릿 필터를 CAS를 하면서 만들게 되었습니다.

구조는 replacementLoginUrl과 casServerLoginUrl를 init-param으로 받고 casServerLoginUrl을 HttpClient로 연결을 해봐서 문제가 없으면 filterChain으로 계속 처리를 하고 아니면 replacementLoginUrl 페이지로 리다이렉트 시킵니다.



중요한 것은 web.xml에서 CasAuthenticationFilter 보다 위에 정의를 해야 한다는 점입니다.
아래에 해버리면 아무 의미가 없어져 버린다는...


CAS 전문가 과정 자체 이수 중...

 


Posted by 자수씨
, |





그냥 이것도 이해를 하기 위해서 그려 놓은 것 입니다.

SpringIDE에서 위의 다이어그램을 그려주지 않을까 해서 설치해봤는데 못찾아서 ㅋㅋ 그냥 예전에 그려놓은걸 올려요~





Posted by 자수씨
, |

그냥 무작정 정리에 들어갑니다. 이해를 하기 위해서!!!

CAS는 하나의 필터와 한개의 ContextLinstener의 설정을 구성하여 Single Sign Out을 지원합니다.

web.xml 설정
fiter

<filter>

           <filter-name>CAS Single Sign Out Filter</filter-name>

           <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>

</filter>


filter-mapping

<filter-mapping>

           <filter-name>CAS Single Sign Out Filter</filter-name>

           <url-pattern>/*</url-pattern>

</filter-mapping>


listener

<listener>

           <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>

</listener>






참고 페이지:
http://www.ja-sig.org/wiki/display/CASC/Configuring+Single+Sign+Out
http://www.ja-sig.org/wiki/display/CASUM/Single+Sign+Out


Posted by 자수씨
, |

CAS Client는 WAS의 web.xml에 filter설정에 의하여 동작을 하게됩니다.
역시 구축 시에 정리해 놓는 것이 좋을 듯하여 슥삭슥삭... (물론 틀릴 가능성은 많습니다 ㅋㅋㅋ)




참고 페이지: http://www.ja-sig.org/wiki/display/CASC/Configuring+the+JA-SIG+CAS+Client+for+Java+in+the+web.xml





Posted by 자수씨
, |

cas server 에서 jdbc 를 담당하는 클래스는 아래와 같이 네 종류가 있습니다.



ㅁ AbstractJdbcUsernamePasswordAuthenticationHandler
- 데이터베이스 인증 핸들러에 대한 추상 클래스.

ㅁ BindModeSearchDatabaseAuthenticationHandler
- 제공된 사용자 이름 및 암호를 사용하여 데이터베이스에 대한 연결을 열어 사용자 인증을 시도.
서버는 URL을 키로 갖고, 필요로하는 데이터베이스 드라이버의 타입을 프로퍼티로 갖는 Properties와 같은 클래스를 제공.

ㅁ QueryDatabaseAuthenticationHandler
- 사용자 이름을 파라미터로 한 쿼리에 의해 리턴된 패스워드는 사용자에 의해 제공된 패스워드의 변환된 버전과 비교되어 짐.
일치 한다면 인증은 성공. 기본 암호 변역기는 일반텍스트 번역기. (???)

ㅁ SearchModeSearchDatabaseAuthenticationHandler
- 사용자 이름과 패스워드에 사용된 암호화 방식을 조회하는 핸들러 (???) 
이 클래스의 기본적으로 PlainTextPAsswordTranslator의 PasswordTranslator.


JavaDoc에 있는 걸 해석해보려고 해도 써보질 않았으니 무슨 말인지 모르겠네요.

일단은 정리!!!



Posted by 자수씨
, |

jaas.conf 관련 실패 로그
-------------------------------------------------------------------------------
Test set: org.jasig.cas.authentication.handler.support.JaasAuthenticationHandlerTests
-------------------------------------------------------------------------------
Tests run: 4, Failures: 0, Errors: 4, Skipped: 0, Time elapsed: 0.202 sec <<< FAILURE!
testWithAlternativeRealm(org.jasig.cas.authentication.handler.support.JaasAuthenticationHandlerTests)  Time elapsed: 0.171 sec  <<< ERROR!
java.lang.SecurityException: ...\cas-server-3.3.5\cas-server-core/src/test/resources/org/jasig/cas/authentication/handler/support/jaas.conf (해당 파일이나 디렉토리가 없습니다.)

GoogleAccountsService 관련 실패 로그
-------------------------------------------------------------------------------
Test set: org.jasig.cas.authentication.principal.GoogleAccountsServiceTests
-------------------------------------------------------------------------------
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.016 sec <<< FAILURE!
testResponse(org.jasig.cas.authentication.principal.GoogleAccountsServiceTests)  Time elapsed: 0 sec  <<< ERROR!
java.io.FileNotFoundException: class path resource [DSAPublicKey01.key] cannot be opened because it does not exist

GoogleAccountsArgumentsExtractor 관련 실패 로그
-------------------------------------------------------------------------------
Test set: org.jasig.cas.web.support.GoogleAccountsArgumentExtractorTests
-------------------------------------------------------------------------------
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0 sec <<< FAILURE!
testNoService(org.jasig.cas.web.support.GoogleAccountsArgumentExtractorTests)  Time elapsed: 0 sec  <<< ERROR!
java.io.FileNotFoundException: class path resource [DSAPublicKey01.key] cannot be opened because it does not exist


위의 문제들 모두다 어떤 파일들이 없다는 것 입니다. 보아하니 인증서 관련 문제인 것 같았습니다. 하지만 아무리 구글을 뒤져봐도 나오지 않는 해결책으로 인하여 결국 CAS 소스 서버를 뒤지게 되었습니다.




이제 war도 나왔으니... 배포 테스트를...



Posted by 자수씨
, |

CAS Server를 빌드하는 중 많은 우여 곡절을 겪고 있네요...

아래는 그 중 하나~

SafeDispatcherServlet:
The Spring DispatcherServlet we wrap threw on init.
But for our having caught this error, the servlet would not have initialized.
org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from ServletContext resource [/WEB-INF/-servlet.xml]; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/-servlet.xml]


뜬금 없는 /WEB-INF/-servlet.xml ... "-servlet.xml" 앞에 먼가 있을 것 같은데...

역시나 모르는 것은 구글에게 물어보는 것이 빠르기에 바로 구글링 들어갔습니다.


http://www.mail-archive.com/cas@tp.its.yale.edu/msg06027.html

위의 내용을 확인해 보니...
The SafeDispatcherServletTests error is caught and ignored.  Its displayed
because of the log4j settings.
-Scott
log4j 설정에 의해 보여진다는 Scott 님의 말씀...


한마디로 무시해도 상관 없다는 이야기입니다.  아마도...



Posted by 자수씨
, |

CAS Server를 설치하다가 문제에 봉착하였습니다.
회사 내에서 사용하기 위해 Internal Repository를 Sonatype Nexus 로 구성해 놓았는데, cas에서 설정된 사설 repository에 있는 jar를 받지 못하는 문제가 발생하였습니다.

현재 cas 에 잡혀있는 repository


에러를 보아하니 nexus에서 위의 repository에 접근하지 못하는 문제로 보였습니다.


 
 
회사로 복귀하니 포스팅 할 거리도 많아지고 포스팅 할 시간도 생기도 좋네요~ ㅋㅋㅋ


 

Posted by 자수씨
, |

글 보관함

최근에 받은 트랙백