我正在尝试使用AngularJS 1.x,Spring Boot REST和Spring Security构建一个应用程序。虽然我对Spring REST本身有中级知识,但我对AngularJS和Spring Security都很陌生。 我已经给出了我迄今为止开发的应用程序的github链接。它仍然是骨架形式,没有任何效果:
https://github.com/imrnk/touchinghand
我将列出下面的问题和困惑:
1)我正在使用ui-router状态从一个状态导航到另一个状态。到目前为止,我已经确定了两个状态:“登录”页面和从那里到“注册”页面的链接。一旦用户登录,她将登陆仪表板。但是这个仪表板尚未创建。 现在这个login.html可以说是应用程序的入口点。当我输入localhost:8080 /它应该重定向到localhost:8080 / login。现在我可以看到页面正确地重定向到login.html但是我在login.html中使用的模板(login.template.html或register.template.html)没有加载......但是,当我正在运行时使用browsersync的节点js,我看到页面正在加载其中的所有内容。
2)我尝试禁用spring security,然后我看到登录页面已正确加载。所以我猜这可能是一个春天安全问题,但究竟是什么问题我无法弄清楚。 我在WebSecurityConfigurerAdapter实现中的HttpSecurity配置如下所示:
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/", "/login", "/register", "/**/*.css",
"/**/*.js", "/**/**/*.css", "/**/**/*.js",
"/**/**/**/*.css", "/**/**/**/*.js",
"/**/**/**/**/*.css", "/**/**/**/**/*.js", "/**/home.html", "**/login.html",
"**/**/login.template.html", "**/**/registration.template.html")
.permitAll().
regexMatchers("/registration*")
.permitAll()
.anyRequest().authenticated()
.and()
.formLogin().loginPage("/login").permitAll()
.and()
.logout().permitAll();
}
我的MvcConfig看起来像这样:
@Configuration
public class MvcConfig extends WebMvcConfigurerAdapter {
public void addResourceHandlers(ResourceHandlerRegistry registry) {
super.addResourceHandlers(registry);
registry.addResourceHandler("classpath:/resources/static/css/**")
.addResourceLocations("classpath:/resources/static/css/");
registry.addResourceHandler("classpath:/resources/js/**").addResourceLocations("classpath:/resources/js/");
registry.addResourceHandler("classpath:/resources/static/**")
.addResourceLocations("classpath:/resources/static/");
registry.addResourceHandler("classpath:/resources/static/templates/**")
.addResourceLocations("classpath:/resources/static/templates/");
}
@Override
public void addViewControllers(ViewControllerRegistry registry) {
super.addViewControllers(registry);
registry.addViewController("/").setViewName("forward:/login");
//registry.addViewController("/login").setViewName("forward:/login");
registry.addViewController("login.html");
//registry.addViewController("register").setViewName("registration");
// registry.addViewController("/registration.html");
//registry.addViewController("/dashboard").setViewName("dashboard");
//registry.addViewController("/dashboard.html");
}
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("static/");
resolver.setSuffix(".html");
registry.viewResolver(resolver);
}
}
作为@Controller进行分配的我的LoginController类具有:
@RequestMapping(value={"/"}, method = RequestMethod.GET)
public String showLogin(Model model){
model.addAttribute("user", new UserDTO());
return "/login";
}
3)我对解析后的视图的名称以及如何使用角度模板html进行映射感到很困惑。
我怀疑,可能是我遵循纯粹的REST方法,并且在Spring MVC和Spring REST的某些方面处于中间位置。 Spring Security的引入也增加了现在的问题。
我还附加了firefox开发者网络截图,如果这可以帮助
请帮助我。感谢。