当前位置: 首页 > 知识库问答 >
问题:

我无法在一个简单的示例中配置 Spring 安全性

司空炯
2023-03-14

添加了这些依赖项:

groupID: org.springframework.security

ArtifactId:spring-security-config, spring-security-taglibs, spring-security-web for Spring Security。

我用一个请求创建了简单的控制器:

@Controller
public class ServerController {

    @RequestMapping(value = "/get", method = RequestMethod.GET)
    public @ResponseBody Object hello() {
        return "helloWorld";
    }
}

我的使用注释配置:

@Configuration
@EnableWebMvc
@ComponentScan("web")
public class Dispatcher extends WebMvcConfigurerAdapter {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/WEB-INF/pages/**").addResourceLocations("/pages/");
    }

    @Bean
    public InternalResourceViewResolver setupViewResolver() {
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/pages/");
        resolver.setSuffix(".jsp");
        resolver.setViewClass(JstlView.class);
        return resolver;
    }

}

和 Spring 应用程序的初始值设定项:

 public class Initializer extends AbstractAnnotationConfigDispatcherServletInitializer {
        @Override
        protected Class<?>[] getRootConfigClasses() {
            return new Class<?>[] {
                   Dispatcher.class,
            };
        }

        @Override
        protected Class<?>[] getServletConfigClasses() {
            return new Class<?>[] {
                Dispatcher.class
            };
        }

        @Override
        protected String[] getServletMappings() {
            return new String[]{"/"};
        }
    }

之后,我创建了ConfigSecurity,他在这里:

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    public void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
                .antMatchers("/get/**").access("hasRole('USER')")
                .and().formLogin().permitAll()
                .and().logout.permitAll();
    }

    @Override
    public void configure(AuthenticationManagerBuilder authentication) throws Exception {
        authentication.inMemoryAuthentication().withUser("user").password("qwerty").roles("USER");
    }
}

我不知道我错过了,但这不起作用,我可以毫无问题地访问 /hello 页面。请帮帮我。谢谢!

共有1个答案

卫仲卿
2023-03-14

您需要在初始值设定项类中注册 SecurityConfig 类。

@Override
protected Class<?>[] getServletConfigClasses() {
    return new Class<?>[] { SecurityConfig.class };
}
 类似资料:
  • 问题内容: 我是spring-security(Java)的新手,我正在寻找以下示例的简单示例: 如何使用Spring Security进行登录和注销 确保会话存在于每个页面上,如果没有,则再次重定向到登录名 如何获得对当前用户会话的访问权限 我的项目目前正在使用Spring MVC,并处于hibernate状态。 我已经构建了loginAPI + loginDAO,现在我需要结合安全性并确保某些

  • 我已经为用户和管理员提供了Spring Security性。访问权限仅授予经过身份验证的用户,某些页面仅允许管理员访问。但这几乎是默认配置。 现在我想在SpringSecurity中添加第三个角色(我们称之为crip)。这3个角色就像俄罗斯的嵌套玩偶:用户可以访问3页,crip可以访问这3页以及其他2页,管理员是超级用户,因此他可以访问所有内容。 在hibernate/JPA方面,对于一个在aut

  • 我们以一个下面简单的FreeRADIUS配置来开始这一章 本机作为一个NAS设备(RADIUS客户端) Alice定义为一个测试用户. 在我们已经定义客户端和测试用户之后, 我们将会使用radtest程序来作为RADIUS客户端的角色并且测试Alice的authentication.

  • 有人能帮助我为什么被触发,以及如何禁用它吗?作为内部系统,rest服务是否需要授权? 提前致谢,如有任何建议,不胜感激。

  • 我面临的挑战是,我找不到一种方法来配置安全性,使到/profilesendpoint的POST请求不受保护,而GET或PUT的请求从提供的承载令牌传递到派生的@AuthenticationPrincipal中。 我想在API中设置以下内容:POST/profile创建新用户-无安全性GET/profile/{id}按id获取用户-需要管理员权限或用户是authd POST/password/res

  • 本文向大家介绍一个简单的MVC PHP CodeIgniter示例,包括了一个简单的MVC PHP CodeIgniter示例的使用技巧和注意事项,需要的朋友参考一下 在上一篇文章中,我们了解了PHP CodeIgniter。现在,在本文中,我们将使用html创建一个简单的视图页面,并使用一个控制器打开该视图。所以,让我们开始吧。 1.创建一个视图页面 首先,我们将创建一个视图页面,该页面将显示给

  • 我是使用Dagger2的新手(我一直使用Koin),我正在尝试实现一个简单的示例,但我真的不知道我缺少了什么。这就是我目前得到的。 app.gradle: 应用模块。kt: AppComponent。kt: TestClass。千吨 pp.kt: MainActivity.kt: 错误:testClass==null

  • 我已经设置了AWS EC2实例,它正在运行。当我尝试从本地框ping时,它不可用。我找到的解决方案似乎都不起作用。我在安全组中添加了一条规则: 我已经完全禁用了Windows防火墙(仅用于测试)。我仍然无法 ping 此实例。