Я переношу WebApp с 3 по 3 весны с загрузкой.Настройте CAS с помощью Spring (Boot) без web.xml
оригинальный web.xml ниже
<listener>
<listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
</listener>
<filter>
<filter-name>CAS Authentication Filter</filter-name>
<filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
<init-param>
<param-name>casServerLoginUrl</param-name>
<param-value>https://casserver/login</param-value>
</init-param>
<init-param>
<param-name>serverName</param-name>
<param-value>http://myapp</param-value>
</init-param>
</filter>
<filter>
<filter-name>CAS Validation Filter</filter-name>
<filter-class>org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class>
<init-param>
<param-name>casServerUrlPrefix</param-name>
<param-value>https://casserver/login</param-value>
</init-param>
<init-param>
<param-name>serverName</param-name>
<param-value>http://myapp</param-value>
</init-param>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter>
<filter-name>CAS Single Sign Out Filter</filter-name>
<filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CAS Single Sign Out Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CAS Authentication Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CAS Validation Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<session-config>
<session-timeout>90</session-timeout>
</session-config>
<context-param>
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
<param-value>messages</param-value>
</context-param>
Я пытаюсь зарегистрировать все фильтры, слушателей и отображения внутри моего класса AppConfic (ниже и НЕ заполняйте, так как он уже не работает ...)
@Configuration
public class MyWebApplicationInitializer implements ServletContextInitializer {
@Override
public void onStartup(ServletContext servletContext) {
servletContext.addListener(new SingleSignOutHttpSessionListener());
Cas20ProxyReceivingTicketValidationFilter cas20 = new Cas20ProxyReceivingTicketValidationFilter();
cas20.setServerName("http://myapp");
AuthenticationFilter authenticationFilter = new AuthenticationFilter();
authenticationFilter.setCasServerLoginUrl("https://casserver");
authenticationFilter.setServerName("http://myapp");
servletContext.addFilter("CAS Authentication Filter", authenticationFilter);
servletContext.addFilter("CAS Validation Filter", cas20);
servletContext.addFilter("CAS Single Sign Out Filter", new SingleSignOutFilter());
}
}
1/cAS20 проблема при создании экземпляра
я не могу определить cas20 casServerUrlPrefix ... Там нет сеттера?!
2/AuthenticationFilter проблема
Даже с имя_сервером определяется, во время запуска, происходит следующее сообщение об ошибке:
java.lang.IllegalArgumentException: serverName or service must be set.
at org.jasig.cas.client.util.CommonUtils.assertTrue(CommonUtils.java:116) ~[cas-client-core-3.2.1.jar:3.2.1]
at org.jasig.cas.client.util.AbstractCasFilter.init(AbstractCasFilter.java:103) ~[cas-client-core-3.2.1.jar:3.2.1]
at org.jasig.cas.client.authentication.AuthenticationFilter.init(AuthenticationFilter.java:96) ~[cas-client-core-3.2.1.jar:3.2.1]
at org.jasig.cas.client.util.AbstractCasFilter.init(AbstractCasFilter.java:84) ~[cas-client-core-3.2.1.jar:3.2.1]
at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279) ~[tomcat-embed-core-8.0.28.jar:8.0.28]
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:109) ~[tomcat-embed-core-8.0.28.jar:8.0.28]
Можно ли определить внутри ServletContextInitializer такого рода фильтры? Нужно ли загружать xml (dispatcher-servlet.xml как?)
просто здорово, спасибо! –
Это основано на стандартной сборке jhipster, это помогло мне настроить CAS для весны boot-https://github.com/jgribonvald/demo-spring-cas-angular – chrismarx