WebappとWebappの2つのWebアプリケーションがあります。Webapp AはSpring 3.1 webappです。 Webapp Bは別の非スプリングwebappです。どちらもCASによって保護されています。私の目標は、WebアプリケーションAがプロキシチケットを使用してWebアプリケーションBから情報を取得できるようにすることです。プロキシチケットを使用したSpringとCAS
私はspring-securityによって提供されるcas-sampleをwebapp Aとみなしました。私のローカルカスは期待どおりに動作します。 casサンプルに精通していない人には、cas-sampleアプリケーション内の別のページを要求するためにプロキシチケットを使用する例が提供されています。私はWebアプリケーションBのためにmod_auth_casを使って保護されたApache Webサーバーの下で単純なページを使用します。再び、webapp Bは期待通りに動作します。プロキシチケットを使用してwebappBを要求するようにcas-sampleを変更すると、動作しません。 webappBのリクエストからの応答はCASログインページです。注:私は同じ結果で、webapp Bのtomcat webapp(非スプリング)を試しました。これは、問題がWebapp Bにないと信じています。以下は、プロキシチケットを使用してwebapp Bにリクエストを行うために使用されるコードです。また、セキュリティコンテキストの設定はhereと表示されます。
final String targetUrl = "https://server/webappB";
final CasAuthenticationToken token = (CasAuthenticationToken) request.getUserPrincipal();
final String proxyTicket = token.getAssertion().getPrincipal().getProxyTicketFor(targetUrl);
final String serviceUrl = targetUrl+"?ticket="+URLEncoder.encode(proxyTicket, "UTF-8");
String proxyResponse = CommonUtils.getResponseFromServer(serviceUrl, "UTF-8");
私は間違っていますか?上記のtargetUrlがwebapp A内にあり、外部アプリケーションではない場合、なぜこれが機能しますか?
ありがとうございました。
EDIT:ここでは、プロキシチケットを使用するWebアプリケーションのページにリクエストが行われたときにCASログに表示される内容が役立ちます。
[org.jasig.cas.ticket.registry.DefaultTicketRegistry] - Attempting to retrieve ticket [TGT-2-YX0RNVRDHAPyGLy6ymGGVucUSQyjtre4jvGrAxYk2hXsehsxqx-cas]
[org.jasig.cas.ticket.registry.DefaultTicketRegistry] - Ticket [TGT-2-YX0RNVRDHAPyGLy6ymGGVucUSQyjtre4jvGrAxYk2hXsehsxqx-cas] found in registry.
[org.jasig.cas.ticket.registry.DefaultTicketRegistry] - Added ticket [ST-3-JrQKqqpZJz00a2hsGZP6-cas] to registry.
[org.jasig.cas.CentralAuthenticationServiceImpl] - Granted proxy ticket [ST-3-JrQKqqpZJz00a2hsGZP6-cas] for service [https://server/webappB] for user [testUser]
[org.jasig.cas.web.support.CasArgumentExtractor] - Extractor generated service for: https://server/webappB
[org.jasig.cas.ticket.registry.DefaultTicketRegistry] - Attempting to retrieve ticket [ST-3-JrQKqqpZJz00a2hsGZP6-cas]
[org.jasig.cas.ticket.registry.DefaultTicketRegistry] - Ticket [ST-3-JrQKqqpZJz00a2hsGZP6-cas] found in registry.
[org.jasig.cas.ticket.registry.DefaultTicketRegistry] - Removing ticket [ST-3-JrQKqqpZJz00a2hsGZP6-cas] from registry
[org.jasig.cas.web.support.CasArgumentExtractor] - Extractor generated service for: https://server/webappB
[org.jasig.cas.web.flow.InitialFlowSetupAction] - Placing service in FlowScope: https://server/webappB
[org.jasig.cas.web.flow.InitialFlowSetupAction] - Placing service in FlowScope: https://server/webappB
[org.jasig.cas.web.support.CasArgumentExtractor] - Extractor generated service for: https://server/webappB