cas

うー、このエントリは微妙。とりあえずサーブレットがないと動かないので整備します。tomcat5.5系でいけるっぽいです。

何はともあれサーブレット

とりあえずjavaいれます

# apt-get install sun-java6-jdk

tomcatは5.5系を手インストールしてしまいます。パッケージで管理するのが面倒なものの1つだったりします(多分)

http://tomcat.apache.org/download-55.cgi

(面倒なので全部root、実運用するときは気をつけてやってください)

# tar xvzf apache-tomcat-5.5.27.tar.gz
# mv apache-tomcat-5.5.27 /usr/local/tomcat5
# ./startup.sh
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
At least one of these environment variable is needed to run this program

となるので起動スクリプトでexportしてやったりでもいいんですけど、環境変数JAVA_HOMEを適切に向けます。

JAVA_HOME=/usr/lib/jvm/java-6-sun

どこだったか忘れた場合は/usr/share/doc以下がポインタになってくれるはずです

CASいれる

http://www.ja-sig.org/products/cas/downloads/

ここからダウンロード可能

# cp ./cas-server-3.3.1/modules/cas-server-webapp-3.3.1.war \ 
/usr/local/tomcat5/webapps/cas.war

こんなんでいいんかなぁ…

memcachedにチケットをつっこむ

memcachedにチケットをつっこむ方法。

http://www.ja-sig.org/wiki/display/CASUM/MemcacheTicketRegistry

とりあえずやってみると

# vi webapps/cas/META-INF/maven/org.jasig.cas/cas-server-webapp/pom.xml

dependencies内に以下を加える

<dependency>
	<groupId>org.jasig.cas</groupId>
	<artifactId>cas-server-integration-memcached</artifactId>
	<version>${project.version}</version>
	<type>jar</type>
</dependency>

続いてwebapps/cas/WEB-INF/spring-configuration/ticketRegistry.xml

    <!-- Ticket Registry -->
        <bean id="ticketRegistry" class="org.jasig.cas.ticket.registry.DefaultTicketRegistry" />

こんなのがあるのでこれをこうする

<bean id="ticketRegistry" class="org.jasig.cas.ticket.registry.MemCacheTicketRegistry">
  <constructor-arg index="0">
    <list>
      <value>192.168.201.72:11211</value>
      <value>192.168.201.73:11211</value>
    </list>
  </constructor-arg>
  <constructor-arg index="1" type="int" value="21600" />
  <constructor-arg index="2" type="int" value="300" />
</bean>

落ちました

nested exception is java.lang.ClassNotFoundException: org.ja
sig.cas.ticket.registry.MemCacheTicketRegistry

ソース内にmodules/cas-server-integration-memcached-3.3.1.jarってのがありました。webapps/cas/WEB-INF/lib/にでもつっこんどけばいいんでしょか?

# cp modules/cas-server-integration-memcached-3.3.1.jar  \ 
 /usr/local/tomcat5/webapps/cas/WEB-INF/lib/

で再起動してみる。はい落ちました

nested exception is java.lang.NoClassDefFoundError: 
net/spy/memcached/MemcachedClient

ううーむ

http://bleu.west.spy.net/~dustin/repo/spy/jars/

この辺からmemcached.jarとspy.jarをつっこんでいれたら起動はした、が、

nested exception is java.lang.UnsupportedOperationException: 
GetTickets not supported.

ううううーむ

余計な設定を省いたらなんかいけたっぽい?

with LDAP

デフォルトの認証ハンドラはテスト用なのでそのままだと怒られます。

org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler
is only to be used in a testing environment.
NEVER enable this in a production environment.

ここではまずOpenldap (slapd)との接続を試みる事にします。基本的には以下のマニュアルで賄えるもの

http://www.ja-sig.org/wiki/display/CASUM/LDAP

pom.xmlの書き換え

META-INF/maven/org.jasig.cas/cas-server-webapp/pom.xmlとかにあります。こんな感じで足します

                <dependency>
                        <groupId>${project.groupId}</groupId>
                        <artifactId>cas-server-support-ldap</artifactId>
                        <version>${project.version}</version>
                </dependency>

でもこれ、mavenの設定ファイルだろうからサーバ上でこれを書き換えてもあんまり意味なさそうというか、本来はmavenであれこれするべきなんでしょうが、、まぁいいか。。。

deployerConfigContext.xml

WEB-INF/deployerConfigContext.xmlを書き換え。書き換える部分は2箇所(to be added)

これでサーバの再起動をかけます。例によってdependが足らんといわれるんで

nested exception is java.lang.ClassNotFoundException: org.jasig.cas
.adaptors.ldap.util.AuthenticatedLdapContextSource

こういうのをmavenでどうこうするはずなんですが、手でも何とかなるっぽいのでします。 展開したソースコードに./modules/cas-server-support-ldap-3.3.1.jarていうのがいるので、これをWEB-INF/lib/内にコピーします。すると

nested exception is j
ava.lang.NoClassDefFoundError: org/springframework/ldap/core/support/LdapContext
Source

となるので、やはり http://www.springsource.org/ldap この辺から取得してきます。今回はspring-ldap-bin-with-dependencies-1.2.1というのを利用しました。この辺もmavenで自動的にfetchしてくれるんだろうねえ…でもdepenciesはいらないかもしれませんでした。とりあえずdist/の中に入っているjarを例によってWEB-INF/libにコピーして起動してみました。

INFO [org.jasig.cas.authentication.AuthenticationManager
Impl] - <AuthenticationHandler: org.jasig.cas.adaptors.ldap.BindLdapAuthenticati
onHandler successfully authenticated the user which provided the following crede
ntials: [username: test]>

うまくいくとこんな感じのログ

with MS-AD

mavenを使う場合

なんとなくわかってきたのでメモ

cas.txt · 最終更新: 2012/04/07 10:32 (外部編集)
www.chimeric.de Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0