2016-08-25 68 views
0

我一直在搜索和搜索,但找不到合适的异常我得到的溶剂。我正在用java,spring mvc,hibernate & MySQL构建一个web应用程序。我使用过Spring Security,因为只有授权的用户才被允许使用该Web应用程序。我使用的CSS(引导),使它看起来不错,但现在的问题是,我访问得到下面的异常资源时:资源处理程序Spring异常:org.springframework.web.servlet.DispatcherServlet noHandlerFound

aug 25, 2016 10:41:38 AM org.springframework.web.servlet.DispatcherServlet noHandlerFound 
WARNING: No mapping found for HTTP request with URI [/ToolManagementSystem/admin/resources/css/alfen.css] in DispatcherServlet with name 'dispatcher' 
aug 25, 2016 10:41:38 AM org.springframework.web.servlet.DispatcherServlet noHandlerFound 
WARNING: No mapping found for HTTP request with URI [/ToolManagementSystem/admin/resources/img/logo.jpg] in DispatcherServlet with name 'dispatcher' 
aug 25, 2016 10:41:38 AM org.springframework.web.servlet.DispatcherServlet noHandlerFound 
WARNING: No mapping found for HTTP request with URI [/ToolManagementSystem/admin/resources/css/bootstrap.css] in DispatcherServlet with name 'dispatcher' 

的唯一方法(我发现至今),以防止这在我resourcehandler明确地定义每一个代码路径

// Grants access to resources 
@Override 
public void addResourceHandlers(ResourceHandlerRegistry registry) { 
    registry.addResourceHandler("/resources/**").addResourceLocations("/resources/"); 
} 

这里是我的安全配置

@Override 
protected void configure(HttpSecurity http) throws Exception { 
    http.authorizeRequests() 
    .antMatchers("/css/**", "/js/**", "/images/**").permitAll().anyRequest().authenticated() 
    .antMatchers("/resources/**").permitAll().anyRequest().authenticated() 
    .antMatchers("/admin/**").access("hasRole('ADMIN')") 
    .antMatchers("/db/**").access("hasRole('DBA')") 
    .antMatchers("/lead/**").access("hasRole('LEAD')") 
    .antMatchers("/responsible/**").access("hasRole('RESPONSIBLE')") 
    .and().formLogin().loginPage("/login").successHandler(customSuccessHandler) 
    .usernameParameter("ssoId").passwordParameter("password") 
    .and().csrf() 
    .and().exceptionHandling().accessDeniedPage("/Access_Denied"); 
} 

干杯,伙计们,帮了我/我指明了正确的方向! (我的道歉,如果这原来重复的问题)

解决方案,我已经试过了是:

// Grants access to resources 
@Override 
public void addResourceHandlers(ResourceHandlerRegistry registry) {  
registry.addResourceHandler("/resources/**").addResourceLocations("classpath:/resources/"); 
    registry.addResourceHandler("/**/resources/**".addResourceLocations("/resources/)" 
    } 

和几个变化的安全CONFIGS的方式,但是我愿意接受所有的想法/建议!

回答

0

所以,在我的代码后多了一个鬼混。我找到了我的问题的答案,结果非常简单。

我的链接资源,在JSP的之前是这样的:

<link href="resources/css/bootstrap.css" rel="stylesheet" media="screen" /> 
<link href="resources/css/alfen.css" rel="stylesheet" media="screen" /> 

至极是不是它应该是。这是什么使所有差异:

<link href="${pageContext.request.contextPath}/resources/css/bootstrap.css" rel="stylesheet" media="screen" /> 
<link href="${pageContext.request.contextPath}/resources/css/alfen.css" rel="stylesheet" media="screen" /> 

现在它的工作完美。所以为了完成,我想把这张贴作为可能的解决方案之一,当你可能遇到同样的问题!

相关问题