Spring - 在WebMVC上分享UserDetailsS​​ervice&安全

时间:2014-07-15 11:06:47

标签: java spring spring-mvc spring-security

我使用Spring& amp;实现了一个带有一些基本登录机制的Web应用程序。春季安全。一切都很好,但我面临一个问题(也许这不是问题,让我们看看)。

我的WebApp结构如下(No XML Config,Servlet-3.0和Spring 4.0):

WebAppInitializer
意图:配置WebApplication

public class WebAppInitializer implements WebApplicationInitializer {

  public void onStartup(ServletContext servletContext) throws ServletException {
    AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext();
    applicationContext.register(AppConfig.class);
    applicationContext.refresh();

    AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
    context.register(Dispatcher);
    context.setParent(applicationContext);
    ServletRegistration.Dynamic dispatcher = servletContext.addServlet("dispatcher-servlet", new DispatcherServlet(context));
    dispatcher.setLoadOnStartup(1);
    dispatcher.addMapping("/*");
  }
}

SecurityWebApplicationInitializer.java
意图:添加安全性

public class SecurityWebApplicationInitializer extends AbstractSecurityWebApplicationInitializer {
  public SecurityWebApplicationInitializer() {
    super(SecurityConfig.class);
  }
}

还有课程:

  • AppConfig(@Configuration,xyz.services的@ComponentScan)
  • DispatcherConfig(@Configuration,@ EnableWebMVc和@ComponentScan for xyz.controller)
  • SecurityConfig(@Configuration,@ EnableWebSecurity,xyz.services的@ComponentScan)
  • CustomerUserDetailsS​​ervice实现UserDetailsS​​ervice(@Service)

我的问题/疑问:
我想在 AuthenticationManagerBuilder 的安全性中使用* CustomerUserDetailsS​​ervice *并在我的控制器中 - 有没有办法只有一个UserDetailsS​​ervice实例?在此配置中,它将创建两个实例:一个用于Application Context,另一个用于Security Context。我错过了配置中的任何内容吗?或者这是配置它的最佳方式吗?

除此之外的另一个问题是:有没有办法在我的控制器上使用支持@Secured注释的配置?没有办法让这个工作。

0 个答案:

没有答案