Konwertuję starszą wersję aplikacji Spring na aplikację Adnotacje Spring4. W pierwszym kroku przekonwertowałem wszystkie adnotacje oparte na konfiguracji XML na java. Aplikacja działa dobrze, ale jedynym problemem jest konfiguracja minder witryny xml. Nie wiem, jak przekonwertować poniższą konfigurację Siteminder, która jest dostępna w web.xml na język Java.jak przekonwertować konfigurację minder witryny xml przy użyciu Spring4 Java config
<login-config>
<auth-method>CLIENT-CERT</auth-method>
<realm-name>SiteMinderRealm</realm-name>
</login-config>
Powyższa konfiguracja SiteMinder jest w web.xml,
Czy ktoś może mi powiedzieć jak napisać konfigurację opartą na Java dla powyższej xml w AppInitializer.java
mój web.xml i jej odpowiedni podstawiony AppInitializer.java kod jest taki jak pokazano poniżej
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<display-name>SpringWebMVCApp</display-name>
<context-param>
<param-name>contextClass</param-name>
<param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value>
</context-param>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>com.helloworld.config.AppConfig</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextClass</param-name>
<param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<url-pattern>/rest/</url-pattern>
</servlet-mapping>
<login-config>
<auth-method>CLIENT-CERT</auth-method>
<realm-name>SiteMinderRealm</realm-name>
</login-config>
</web-app>
AppInitializer.java
public class AppInitializer implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
WebApplicationContext context = getContext();
servletContext.addListener(new ContextLoaderListener(context));
ServletRegistration.Dynamic dispatcher = servletContext.addServlet("DispatcherServlet", new DispatcherServlet(context));
dispatcher.setLoadOnStartup(1);
dispatcher.addMapping("/rest/");
}
private AnnotationConfigWebApplicationContext getContext() {
AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
context.register(AppConfig.class);
return context;
}
}
Aktualizacja 1
public class AppInitializer extends WebSecurityConfigurerAdapter implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
WebApplicationContext context = getContext();
servletContext.addListener(new ContextLoaderListener(context));
ServletRegistration.Dynamic dispatcher = servletContext.addServlet("DispatcherServlet", new DispatcherServlet(context));
dispatcher.setLoadOnStartup(1);
dispatcher.addMapping("/rest/");
}
private AnnotationConfigWebApplicationContext getContext() {
AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
context.register(AppConfig.class);
return context;
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.httpBasic().realmName("SiteMinderRealm").and().x509();
}
}
Dlaczego masz zarówno "web.xml" i "WebApplicationInitializer"? Które nie są nawet takie same? –
@ M.Deinum Używam tylko WebApplicationInitializer nie web.xml, web.xml pokazano, który jest z mojej starej aplikacji wiosennej, którą próbuję przekonwertować na spring4 konfigurację java, Jedyne co to jest to, że nie wiem jak konwertować te siteminder stuff to java config –
Dla 'login-config' nie ma odpowiednika java, który jest pominięty w specyfikacji serwletu java, nie wiem dlaczego. Będziesz potrzebował zarówno pliku 'web.xml' (dla' login-config'), jak i Java'a dla konfiguracji Spring (chociaż proponuję rozszerzenie ''AbstractAnnotationConfigDispatcherServletInitializer'). –