(Spring security) 页面无权访问管理权限中的 css 样式、插件等

Posted

技术标签:

【中文标题】(Spring security) 页面无权访问管理权限中的 css 样式、插件等【英文标题】:(Spring security) Page doesn't have access to css style, plugins etc. in Admin Authority 【发布时间】:2018-04-12 09:17:35 【问题描述】:

我对 Spring Security 有疑问。我已经为访问用户部分设置了管理员角色,如果管理员以外的其他人想去那里,我将重定向到 403 页面并且它可以工作,但是 css、插件和引导程序是在此上下文中不可见..

如果不是管理员想要去那里,浏览器控制台中的错误: (403 页面显示没有引导程序和 css ..) http://prntscr.com/h497qo

如果管理员想去那里出错(没有映射).. (用户页面显示没有引导程序和 css ..) http://prntscr.com/h49b7g

Spring 安全配置:

    @Override
protected void configure(final HttpSecurity http) throws Exception 
    http.authorizeRequests().antMatchers("/bootstrap/**", "/dist/**", "/plugins/**").permitAll().antMatchers("/admin/**").hasAuthority("ADMIN")
    .anyRequest().authenticated().and().formLogin().loginPage("/login").permitAll().and().rememberMe()
            .tokenValiditySeconds(60 * 60 * 24 * 31).rememberMeParameter("remember-me").key("uniqueAndSecret").and()
            .logout().deleteCookies("JSESSIONID").logoutUrl("/logout").logoutSuccessUrl("/login").permitAll().and().exceptionHandling().accessDeniedPage("/error")
            .and().csrf().disable();

有什么建议吗?

【问题讨论】:

【参考方案1】:

试试这样的:

 @Override
 public void configure( WebSecurity web ) throws Exception 
    web.ignoring().antMatchers( "/bootstrap/**", "/dist/**", "/plugins/**");

在您的安全配置中。

编辑:资源处理程序

明确添加您的静态资源:

@Configuration
public class WebViewConfig extends WebMvcConfigurerAdapter 
  @Override
  protected void addResourceHandlers( ResourceHandlerRegistry registry ) 
    registry.addResourceHandler( "/bootstrap/**", "/dist/**", "/plugins/**" ).addResourceLocations( "classpath:static/bootstrap/", "classpath:static/dist/", "classpath:static/plugins/" );
  

请注意,我假设您的静态文件夹下的类路径中有这些文件夹(distbootstrapplugins)。

【讨论】:

我看到你有一个 xml 文件,main-servlet.xml,如果它定义了你的 servlet 上下文,请考虑在该文件中定义你的静态资源。 是的,这行得通,但我必须为每个权限进行映射:即 【参考方案2】:

试试这个来解决“找不到映射”的问题:

@Configuration
@EnableWebMvc
public class WebAppConfig extends WebMvcConfigurerAdapter 

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) 
        registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
    

【讨论】:

以上是关于(Spring security) 页面无权访问管理权限中的 css 样式、插件等的主要内容,如果未能解决你的问题,请参考以下文章

你没有权限... spring security shiro

Azure 上托管的 MVC 4 网站说我无权查看目录或页面

spring security自定义拒绝访问页面

spring security3 动态从数据库中读取权限信息<sec:authorize>标签 url属性不起作用

使用spring security时无法访问jsf页面,出现403

使用spring 3 security在jsp页面中访问我的自定义用户对象