0
タイトルと同じ問題があり、http-statusは「302 Moved Temporarily」です。私のセキュリティ-app.xmlは次のとおりです。casがログインページにリダイレクトされない
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:sec="http://www.springframework.org/schema/security" xmlns:p="http://www.springframework.org/schema/p"
xmlns:jee="http://www.springframework.org/schema/jee" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<!-- Load parameters from context.xml -->
<bean id="propertyConfigurer" class="org.springframework.web.context.support.ServletContextPropertyPlaceholderConfigurer"/>
<sec:http entry-point-ref="casEntryPoint" auto-config="true">
<sec:intercept-url pattern="/**" access="ROLE_USER" />
<sec:logout invalidate-session="true" logout-url="/logout" logout-success-url="/loggedOut.html"/>
<sec:custom-filter position="CAS_FILTER" ref="casFilter" />
</sec:http>
<sec:authentication-manager alias="authenticationManager">
<sec:authentication-provider ref="casAuthenticationProvider" />
</sec:authentication-manager>
<bean id="serviceProperties" class="org.springframework.security.cas.ServiceProperties">
<property name="service" value="http://localhost:8080/test/j_spring_cas_security_check" />
<property name="sendRenew" value="false" />
</bean>
<bean id="casFilter" class="org.springframework.security.cas.web.CasAuthenticationFilter">
<property name="authenticationManager" ref="authenticationManager" />
</bean>
<bean id="casEntryPoint" class="org.springframework.security.cas.web.CasAuthenticationEntryPoint">
<property name="loginUrl" value="https://localhost:7443/cas/login" />
<property name="serviceProperties" ref="serviceProperties" />
</bean>
<bean id="casAuthenticationProvider" class="org.springframework.security.cas.authentication.CasAuthenticationProvider">
<property name="authenticationUserDetailsService" ref="myUserService" />
<property name="serviceProperties" ref="serviceProperties" />
<property name="ticketValidator">
<bean class="org.jasig.cas.client.validation.Cas20ServiceTicketValidator">
<constructor-arg index="0" value="https://localhost:7443/cas" />
</bean>
</property>
<property name="key" value="an_id_for_this_auth_provider_only" />
</bean>
<bean id="myUserService" class="com.security.myUserDetailService">
<property name="dataSource" ref="myDatasource"/>
</bean>
<jee:jndi-lookup id="optaDatasource" jndi-name="jdbc/mydb"/>
</beans>
とweb.xml(CASリスナー&いくつかのフィルタ):Tomcatの中
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
...
<servlet>
<servlet-name>mytest</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<!-- Listener für Spring -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- Listener for CAS -->
<listener>
<listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
</listener>
...
<!-- CAS Single Sign Out -->
<filter>
<filter-name>CAS Single Sign Out Filter</filter-name>
<filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>
</filter>
<!-- Spring security -->
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<!-- UTF-8 Encoding Filter -->
<filter>
<filter-name>CEF</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CAS Single Sign Out Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CEF</filter-name>
<servlet-name>mytest</servlet-name>
</filter-mapping>
...
</web-app>
は、server.xml(https://casにコネクタを定義する):
...
<Connector port="7443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keyAlias="caslocalhost" keystoreFile="C:\Program Files\Java\jdk1.6.0_25\bin\caskslocalhost.jks" keystorePass="changeit"/>
何か不足していますか?私は本当に任意の先端に感謝
PS:レスポンスヘッダの 情報:
Content-Length 0
Date Tue, 20 Mar 2012 14:12:23 GMT
Location https://localhost:7443/cas/login?service=http%3A%2F%2Flocalhost%3A8080%2Ftest%2Fj_spring_cas_security_check
Server Apache-Coyote/1.1
Set-Cookie JSESSIONID=A69FD95FB79B21810B2988A02CCFD78C; Path=/test
あなたの質問には実際に問題が説明されていません。 302は、リダイレクト(あなたの場所のヘッダとは何ですか?)に期待するものです。より多くの文脈を与え、あなたの観察を説明する必要があると思います。また、Spring Securityからデバッグログをチェックすると、要求の処理方法についての非常に詳細な解説が得られるはずです。また、CASを使用している場合は、 'auto-config'を設定から削除します。 –
私は応答ヘッダーの情報を追加しました。 http:// localhost:8080/test/...を指定すると、https:// localhost:7443/cas/loginにリダイレクトされます。しかし、それはすでに "場所"にありますが、何も起こりません。 – aaron
これはAjaxリクエストに関連していますか? – aaron