针对SpringBoot项目启动后网页显示Please sign in的问题,一般是因为Spring Security认证授权机制未配置或配置不正确所致,可以采取以下步骤进行解决:
第一步:检查pom.xml中是否添加Spring Security依赖
启动Spring Security需要添加spring-boot-starter-security依赖,检查pom.xml中是否添加了如下代码:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
如果没有添加,则需要在pom.xml中添加依赖。
第二步:配置Spring Security
配置Spring Security很关键,一般需要继承WebSecurityConfigurerAdapter并重写configure方法。以下是一个简单的示例:
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/", "/home","/css/**", "/js/**").permitAll()
.antMatchers("/admin/**").hasRole("ADMIN")
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.permitAll()
.and()
.logout()
.permitAll();
http.csrf().disable();
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
.withUser("user")
.password("{noop}password")
.roles("USER")
.and()
.withUser("admin")
.password("{noop}password")
.roles("USER", "ADMIN");
}
}
以上示例中,配置了两个用户,一个是USER角色,一个是USER和ADMIN角色。登录页面是/login,而首页、/home、/css/等都是允许任何人访问的,/admin/是需要ADMIN角色才能访问的。
第三步:启动应用程序
重启应用程序并访问页面,输入用户名和密码,如果Spring Security配置正确,则可以正常访问页面。
以下是示例一,在Spring Boot项目的application.properties文件中添加如下代码:
security.basic.enabled=false
这里关闭了Spring Security的默认验证机制。
以下是示例二,在Spring Security配置文件中将所有页面均放开:
@Configuration
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().anyRequest().permitAll(); // 所有页面均放开
}
}
以上就是解决SpringBoot项目启动后网页显示Please sign in的问题的攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:解决SpringBoot项目启动后网页显示Please sign in的问题 - Python技术站