使用Spring Boot配置Spring Security

代码黑猩猩

我是使用Java Config配置Spring Security的新手我正在尝试关注此帖子但是,当我运行我的应用程序时,我在所有URL上都遇到了基本身份验证挑战,包括在下面输入任何一个userid / pass组合似乎都不起作用。/

我的控制器:

package com.xxx.web;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/")
/**
 * Controller to handle basic "root" URLs
 * 
 * @author xxx
 * @version 0.1.0
 */
public class RootController {

    /**
     * Handles '/'
     * @param model
     * @return
     */
    @RequestMapping
    public String index(Model model) {
        return "index";
    }

    /**
     * Handles '/signup'
     * @param model
     * @return
     */
    @RequestMapping("/signup")
    public String signup(Model model) {
        return "signup";
    }

    /**
     * Handles '/about'
     * @param model
     * @return
     */
    @RequestMapping("/about")
    public String about(Model model) {
        return "about";
    }

    /**
     * Handles '/login'
     * @param model
     * @return
     */
    @RequestMapping("/login")
    public String login(Model model) {
        return "login";
    }

    /**
     * Handles '/admin'
     * @param model
     * @return
     */
    @RequestMapping("/admin")
    public String admin(Model model) {
        return "admin";
    }
}

不知道还有什么尝试。只是寻找一些有关为什么它不起作用的指导。

更新资料

为了完整起见,这是config类:

package com.xxx.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.builders.WebSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

@Configuration
@EnableWebSecurity
/**
 * Configures the security for the application
 * 
 * @author XXX
 * @version 0.1.0
 *
 */
public class WebSecurityAppConfig extends WebSecurityConfigurerAdapter {
    @Override
    /**
     * @see org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter#registerAuthentication(AuthenticationManagerBuilder)
     */
    protected void registerAuthentication(AuthenticationManagerBuilder auth)
            throws Exception {
        auth
          .inMemoryAuthentication()
            .withUser("user")  // #1
              .password("password")
              .roles("USER")
              .and()
            .withUser("admin") // #2
              .password("password")
              .roles("ADMIN","USER");
    }

    @Override
    /**
     * @see org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter#configure(WebSecurity)
     */
    public void configure(WebSecurity web) throws Exception {
        web
          .ignoring()
             .antMatchers("/resources/**"); // #3
    }

    @Override
    /**
     * @see org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter#configure(HttpSecurity)
     */
    protected void configure(HttpSecurity http) throws Exception {
        http
          .authorizeRequests()
            .antMatchers("/","/signup","/about").permitAll() // #4
            .antMatchers("/admin/**").hasRole("ADMIN") // #6
            .anyRequest().authenticated() // 7
            .and()
        .formLogin()  // #8
            .loginPage("/login") // #9
            .permitAll(); // #5
    }
}

和WebApplicationInitializer:

package com.xxx.config;

import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

/**
 * 
 * @author XXX
 * @version 0.1.0
 */
public class SpringWebMvcInitializer extends
        AbstractAnnotationConfigDispatcherServletInitializer {

    @Override
    /**
     * 
     */
    protected Class<?>[] getRootConfigClasses() {
        return new Class[] { WebSecurityAppConfig.class };
    }

    @Override
    /**
     * 
     */
    protected Class<?>[] getServletConfigClasses() {
        return null;
    }

    @Override
    /**
     * 
     */
    protected String[] getServletMappings() {
        return null;
    }

}

我之前没有包括这些内容,因为它们几乎是引用的博客文章中的粘贴内容。

戴夫·瑟

只需说明可用选项,可能可以最好地回答原始问题。某些应用程序(仅需要基本HTTP身份验证的服务)可以使用执行器中的默认设置,而其他应用程序则需要指定security.*属性(请参阅SecurityProperties以获取选项)和/或属性(AuthenticationManager获取用户帐户详细信息)。下一级别的控制来自添加您自己的控制WebSecurityConfigurerAdapter,您可以通过查看Spring Boot中的“安全”示例来了解如何执行此操作

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用Spring Boot和Spring Security OpenId配置Spring 4.0

来自分类Dev

使用Spring Security ACL

来自分类Dev

Spring Security Java配置

来自分类Dev

使用Spring Security登出SiteMinder

来自分类Dev

Neo4J-Spring Boot-Spring Security-Java配置

来自分类Dev

具有Web Security编程配置的Spring Boot Web Service

来自分类Dev

Spring Boot中Spring Security的XML配置

来自分类Dev

Stormpath Spring Security Java配置

来自分类Dev

Spring Boot或Spring Security内存可能泄漏

来自分类Dev

Spring Security服务配置

来自分类Dev

Spring Security LDAP配置

来自分类Dev

使用AspectJ的Spring Boot + Spring Security无法正常工作

来自分类Dev

Spring Boot ServeletInitializer和Spring Security

来自分类Dev

配置Spring Boot Security在Grails 3.0中使用BCrypt密码编码

来自分类Dev

使用Spring Security进行Spring Boot测试。如何启动替代安全配置?

来自分类Dev

在Spring Boot中添加Spring Security @EnableGlobalMethodSecurity时,“配置默认Servlet处理需要ServletContext”错误

来自分类Dev

如何在Spring Boot中覆盖Spring Security默认配置

来自分类Dev

如何使用Spring Security在Spring Boot应用程序中配置RSocket安全

来自分类Dev

配置Spring Security以显示样式

来自分类Dev

使用Spring Boot / Spring Security配置公共端点仅适用于GET,不适用于POST

来自分类Dev

如何使用Spring Boot和Spring Security OpenId配置Spring 4.0

来自分类Dev

如何配置Spring Security

来自分类Dev

使用Spring Security的PasswordEncoder

来自分类Dev

Neo4J-Spring Boot-Spring Security-Java配置

来自分类Dev

具有Web Security编程配置的Spring Boot Web Service

来自分类Dev

Spring Security 3.2 Java配置

来自分类Dev

Spring Boot或Spring Security内存可能泄漏

来自分类Dev

带有Spring Boot的Spring Security

来自分类Dev

如何使用 Spring Security 在 Spring Boot 中管理会话?

Related 相关文章

  1. 1

    如何使用Spring Boot和Spring Security OpenId配置Spring 4.0

  2. 2

    使用Spring Security ACL

  3. 3

    Spring Security Java配置

  4. 4

    使用Spring Security登出SiteMinder

  5. 5

    Neo4J-Spring Boot-Spring Security-Java配置

  6. 6

    具有Web Security编程配置的Spring Boot Web Service

  7. 7

    Spring Boot中Spring Security的XML配置

  8. 8

    Stormpath Spring Security Java配置

  9. 9

    Spring Boot或Spring Security内存可能泄漏

  10. 10

    Spring Security服务配置

  11. 11

    Spring Security LDAP配置

  12. 12

    使用AspectJ的Spring Boot + Spring Security无法正常工作

  13. 13

    Spring Boot ServeletInitializer和Spring Security

  14. 14

    配置Spring Boot Security在Grails 3.0中使用BCrypt密码编码

  15. 15

    使用Spring Security进行Spring Boot测试。如何启动替代安全配置?

  16. 16

    在Spring Boot中添加Spring Security @EnableGlobalMethodSecurity时,“配置默认Servlet处理需要ServletContext”错误

  17. 17

    如何在Spring Boot中覆盖Spring Security默认配置

  18. 18

    如何使用Spring Security在Spring Boot应用程序中配置RSocket安全

  19. 19

    配置Spring Security以显示样式

  20. 20

    使用Spring Boot / Spring Security配置公共端点仅适用于GET,不适用于POST

  21. 21

    如何使用Spring Boot和Spring Security OpenId配置Spring 4.0

  22. 22

    如何配置Spring Security

  23. 23

    使用Spring Security的PasswordEncoder

  24. 24

    Neo4J-Spring Boot-Spring Security-Java配置

  25. 25

    具有Web Security编程配置的Spring Boot Web Service

  26. 26

    Spring Security 3.2 Java配置

  27. 27

    Spring Boot或Spring Security内存可能泄漏

  28. 28

    带有Spring Boot的Spring Security

  29. 29

    如何使用 Spring Security 在 Spring Boot 中管理会话?

热门标签

归档