0

我的意图是为我现有的项目插入 spring 4 websocket 类。这是spring websocket项目链接: https ://github.com/rstoyanchev/spring-websocket-test

问题是我的项目正在使用 xml 配置文件,而 websocket 项目正在使用非常奇怪的 java 文件配置。

我的问题是有没有办法将这些配置文件从 spring 项目导入到我已经存在的(基于 xml)项目中?

例如,我的 xmls 在 web.xml 中被引用,而在 spring websocket 项目中根本没有 web.xml ..

PS 并非该项目中的所有配置类都是组件,这里有 2 个没有 @Configuration 注释的类:

  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");
}

那么它们会在我的原始扫描中被提取吗?那我应该如何整合它们?

谢谢!

4

2 回答 2

0

Spring 4 现已发布,因此您可以简单地将其作为依赖项包含在您的项目中: http ://search.maven.org/#artifactdetails%7Corg.springframework%7Cspring-framework-bom%7C4.0.0.RELEASE%7Cpom

于 2013-12-13T07:49:11.283 回答
0

我已经写了一个详细的教程/示例,介绍如何使用 Spring 4 WebSockets 和 Spring Security 3.2 来“改造”一个带有 WebSockets 的常规 Spring MVC 应用程序。点击这里

于 2014-01-20T11:54:24.070 回答