Spring Boot ServeletInitializer和Spring Security

用户名

我有2个配置文件。一个是Spring Boot应用程序

@SpringBootApplication
public class Application extends SpringBootServletInitializer {

    public static void main(String[] args) {
        ApplicationContext ctx = SpringApplication.run(Application.class, args);
    }

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Application.class);
    }
    ...
   }

还有Spring Security Config。看来它不起作用。每当我访问localhost:8080时,都会要求输入用户名和密码。我相信我在auth.inMemoryAuthentication().withUser("user").password("password").roles("USER")

@Configuration
@EnableWebSecurity
public class SpringSecurityConfig extends WebSecurityConfigurerAdapter{
    @Autowired
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
        auth
            .inMemoryAuthentication()
            .withUser("user").password("password").roles("USER");
    }
}

但是它显示的凭据无效,是否有任何方法可以验证这一点?

编辑:我试图将此xml配置转换为基于JavaConfig,但仍然无济于事。

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/security"
             xmlns:beans="http://www.springframework.org/schema/beans"
             xmlns:context="http://www.springframework.org/schema/context"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
           http://www.springframework.org/schema/security
           http://www.springframework.org/schema/security/spring-security.xsd
           http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context.xsd">

    <context:component-scan base-package="org.app.genesis.client.auth"/>

    <http pattern="/resources/**" security="none"/>
    <http pattern="/index.jsp" security="none"/>

    <http>
        <intercept-url pattern="/api/*" requires-channel="https"/>
        <!--TODO Add RESOURCE PATTERN checker -->
        <form-login login-page="/index.jsp" default-target-url="/dashboard"/>
        <logout />
    </http>

    <!-- Test Login values -->
    <authentication-manager>
        <!--use inMemoryUserDetailsService for faux auth -->
        <authentication-provider ref="customAuthenticationProvider"/>
    </authentication-manager>
</beans:beans>

这是我的新SecurityConfig

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {


    @Autowired
    private TenantDetailsService tenantUserDetailsService;

    @Autowired
    private PasswordEncryptionService passwordEncoder;

    @Autowired
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
        auth.userDetailsService(tenantUserDetailsService).passwordEncoder(passwordEncoder);
    }

    @Override
    public void configure(HttpSecurity http) throws Exception {
        http.formLogin().loginPage("/index.jsp").defaultSuccessUrl("/dashboard");
    }
}

security-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/security"
             xmlns:beans="http://www.springframework.org/schema/beans"
             xmlns:context="http://www.springframework.org/schema/context"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
           http://www.springframework.org/schema/security
           http://www.springframework.org/schema/security/spring-security.xsd
           http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context.xsd">

    <context:component-scan base-package="org.brightworks.genesis.client.auth"/>

    <http pattern="/resources/**" security="none"/>
    <http pattern="/index.jsp" security="none"/>

    <http>
        <intercept-url pattern="/api/*" requires-channel="https"/>
        <!--TODO Add RESOURCE PATTERN checker -->
        <form-login login-page="/index.jsp" default-target-url="/dashboard"/>
        <logout />
    </http>

    <!-- Test Login values -->
    <authentication-manager>
        <!--use inMemoryUserDetailsService for faux auth -->
        <authentication-provider ref="customAuthenticationProvider"/>
    </authentication-manager>
</beans:beans>
凯尔

如果您想使用自己的身份验证版本。首先从禁用Spring Boot弹簧安全配置开始。将此添加到您的application.properties。

security.basic.enabled=false

并将您的http配置更改为此。

@Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
            .antMatchers("/**")
            .hasAnyRole("ROLE1","ROLE2")
            .and()
            .formLogin()
            .loginPage("/login")
            .loginProcessingUrl("/j_spring_security_check")
            .defaultSuccessUrl("/product/search", true)
            .permitAll()
            .and()
            .csrf()
            .disable()
            .logout()
            .logoutUrl("/j_spring_security_logout")
            .logoutSuccessUrl("/login");
    }

使上述配置与此登录表单匹配

<form class="form-signin"name="f" action="${pageContext.request.contextPath}/j_spring_security_check" method="POST">
    <fieldset>
            <input class="form-control form-group" type="text" name="username" placeholder="Username">
            <input class="form-control" type="password" name="password" placeholder="Password" >
            <a class="forgot pull-right" href="#">Forgot password?</a>
            <button name="submit" class="btn btn-block btn-primary" type="submit">Sign in</button>
    </fieldset>
</form>

假设页面登录页面是“ / login”,您说的POST请求是j_spring_security_check。因此,loginProcessingUrl设置为

j_spring_security_check

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

spring-boot,spring-security和dropwizard指标

来自分类Dev

Spring Boot或Spring Security内存可能泄漏

来自分类Dev

Spring Boot中Spring Security的XML配置

来自分类Dev

使用Spring Boot配置Spring Security

来自分类Dev

Spring Boot或Spring Security内存可能泄漏

来自分类Dev

带有Spring Boot的Spring Security

来自分类Dev

Spring Boot + Security + Thymeleaf和CSRF令牌不会自动注入

来自分类Dev

使用 Spring Boot Security 和 React 登录 Google

来自分类Dev

how to implement a authentication with spring boot security?

来自分类Dev

Spring Boot Security + Thymeleaf:缺少IProcessorDialect类

来自分类Dev

Spring Boot Security 403重定向

来自分类Dev

Spring Boot + Security + JWT 无法生成token

来自分类Dev

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

来自分类Dev

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

来自分类Dev

Spring Boot / Spring Security正在忽略来自JavaScript的/ login调用

来自分类Dev

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

来自分类Dev

Spring Security / Spring Boot-如何为用户设置ROLES

来自分类Dev

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

来自分类Dev

从Spring Boot Oauth2迁移到Spring Security 5

来自分类Dev

没有Spring Security的Spring-Boot登录

来自分类Dev

Spring Boot-如何终止当前的Spring Security会话?

来自分类Dev

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

来自分类Dev

Spring Boot、Spring Security - 防止 MongoDB 的直接 URL 查询

来自分类Dev

Spring Session和Spring Security

来自分类Dev

使用Spring Security,Spring Boot和MongoDB进行密码编码和解码

来自分类Dev

使用Spring Boot 2和Spring Security 5进行多重身份验证

来自分类Dev

Spring Boot,Spring Security和Thymeleaf:使用表单将CsrfFilter应用于网站

来自分类Dev

Spring Security和EnableGlobalMethodSecurity

来自分类Dev

Vaadin 7 + Spring Boot Security处理访问限制异常

Related 相关文章

  1. 1

    spring-boot,spring-security和dropwizard指标

  2. 2

    Spring Boot或Spring Security内存可能泄漏

  3. 3

    Spring Boot中Spring Security的XML配置

  4. 4

    使用Spring Boot配置Spring Security

  5. 5

    Spring Boot或Spring Security内存可能泄漏

  6. 6

    带有Spring Boot的Spring Security

  7. 7

    Spring Boot + Security + Thymeleaf和CSRF令牌不会自动注入

  8. 8

    使用 Spring Boot Security 和 React 登录 Google

  9. 9

    how to implement a authentication with spring boot security?

  10. 10

    Spring Boot Security + Thymeleaf:缺少IProcessorDialect类

  11. 11

    Spring Boot Security 403重定向

  12. 12

    Spring Boot + Security + JWT 无法生成token

  13. 13

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

  14. 14

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

  15. 15

    Spring Boot / Spring Security正在忽略来自JavaScript的/ login调用

  16. 16

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

  17. 17

    Spring Security / Spring Boot-如何为用户设置ROLES

  18. 18

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

  19. 19

    从Spring Boot Oauth2迁移到Spring Security 5

  20. 20

    没有Spring Security的Spring-Boot登录

  21. 21

    Spring Boot-如何终止当前的Spring Security会话?

  22. 22

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

  23. 23

    Spring Boot、Spring Security - 防止 MongoDB 的直接 URL 查询

  24. 24

    Spring Session和Spring Security

  25. 25

    使用Spring Security,Spring Boot和MongoDB进行密码编码和解码

  26. 26

    使用Spring Boot 2和Spring Security 5进行多重身份验证

  27. 27

    Spring Boot,Spring Security和Thymeleaf:使用表单将CsrfFilter应用于网站

  28. 28

    Spring Security和EnableGlobalMethodSecurity

  29. 29

    Vaadin 7 + Spring Boot Security处理访问限制异常

热门标签

归档