我的目的是为现有项目插入spring 4 websocket类。 这是spring websocket项目链接: https://github.com/rstoyanchev/spring-websocket-test
问题是我的项目使用xml配置文件,而websocket项目使用非常奇怪的java文件配置。
我的问题是有没有办法将这些配置文件从spring项目导入到我已经存在的(基于xml的)项目中?
例如,我的xmls正在web.xml中被引用,而在spring websocket项目中根本就没有web.xml。P.S并非该项目中的所有配置类都是组件,这里有2个没有@Configuration anotations的类:
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration.Dynamic;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
public class DispatcherServletInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class<?>[] { WebSecurityConfig.class };
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class<?>[] { WebConfig.class, WebSocketConfig.class };
}
@Override
protected String[] getServletMappings() {
return new String[] { "/" };
}
@Override
protected void customizeRegistration(Dynamic registration) {
registration.setInitParameter("dispatchOptionsRequest", "true");
}
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
super.onStartup(servletContext);
}
}
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.csrf().disable() //TODO Refactor login form
.authorizeRequests()
.antMatchers("/assets/**").permitAll()
.anyRequest().authenticated()
.and()
.logout()
.logoutSuccessUrl("/login.html?logout")
.logoutUrl("/logout.html")
.permitAll()
.and()
.formLogin()
.defaultSuccessUrl("/index.html")
.loginPage("/login.html")
.failureUrl("/login.html?error")
.permitAll();
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth
.inMemoryAuthentication()
.withUser("fabrice").password("fab123").roles("USER").and()
.withUser("paulson").password("bond").roles("ADMIN","USER");
}
那么它们会在我原来的扫描中被拾取吗?我应该如何整合它们呢?
谢谢!
答案 0 :(得分:0)
Spring 4现已发布,因此您只需将其作为项目中的依赖项包含在内: http://search.maven.org/#artifactdetails%7Corg.springframework%7Cspring-framework-bom%7C4.0.0.RELEASE%7Cpom
答案 1 :(得分:0)
我已经编写了一个详细的教程/示例,介绍如何将Spring 4 WebSockets与Spring Security 3.2一起使用WebSockets“改编”常规的Spring MVC应用程序。点击here