Как пройти проверку подлинности Spring -boot
Я ввел пароль, который является "root", и он продолжает выскакивать. Как я могу подавить это или избавиться от него. Я использую spring загрузку и spring безопасность.
![введите описание изображения здесь]()
application.properties
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/springbootpractice
spring.datasource.username=root
spring.jpa.database = MYSQL
spring.jpa.show-sql = true
# Hibernate
hibernate.dialect: org.hibernate.dialect.MySQL5Dialect
hibernate.show_sql: true
hibernate.hbm2ddl.auto: update
entitymanager.packagesToScan: /
Я использую intellij 14, если это имеет значение.
---- Обновление 1 -----
@Configuration
@EnableWebMvcSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/", "/index").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/index")
.permitAll()
.and()
.logout()
.permitAll();
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/", "/index").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/index")
.permitAll()
.and()
.logout()
.permitAll();
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth
.inMemoryAuthentication()
.withUser("user").password("password").roles("USER");
}
}
![введите описание изображения здесь]()
Ответы
Ответ 1
Вот проблемы
(1).loginPage( "/index" ) говорил, что моя страница входа указана в индексе, однако я просто хотел использовать страницу входа spring по умолчанию.
(2) пришлось переместить пакет безопасности внутри демонстрационного пакета (основного пакета). Спасибо @Sanjay за это. Я попытался использовать @ComponantScan, но он не смог заставить его работать.
Ответ 2
Этот класс должен быть в родительском пакете всех других пакетов:
WebSecurityConfig
.
Также в application.properties
установите:
security.basic.enabled=false
Ответ 3
Ответ ACV, вероятно, самый простой способ полностью отключить аутентификацию, добавив security.basic.enabled=false
в файл application.properties, который обычно находится в папке src/main/resources
.
или просто введите пароль:)
1. использовать пароль по умолчанию
При запуске приложения spring обычно печатается целая куча журналов, которые люди обычно не читают. На самом деле пароль создается и печатается на экране при запуске. и имя пользователя просто user
. Если вы тестируете с помощью браузера, и вам, вероятно, нужно только ввести его один раз и кэшировать его, поэтому раз и навсегда вы должны быть надежно зарегистрированы без проверки подлинности каждый раз.
(однако, каждый раз, когда вы перезагружаете приложение, он генерирует новый пароль)
![введите описание изображения здесь]()
2. настройте свой пароль
Добавьте следующие свойства в application.properties, если вы хотите настроить свое имя пользователя и пароль:
security.user.name=myuser
security.user.password=mypassword
И вот как это выглядит с вашим собственным именем пользователя и паролем
![введите описание изображения здесь]()
Ссылка:
Ответ 4
Когда Spring Безопасность находится в пути к классам, Spring Boot по умолчанию защищает все ваши страницы с помощью обычной проверки подлинности. Вот почему вас спрашивают об идентификаторе пользователя и пароле.
Вам необходимо настроить защиту. Для этого обычно люди расширяют WebSecurityConfigurerAdapter
, например:
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/", "/home").permitAll()
.anyRequest().authenticated()
.and()
...
Подробнее см. это Spring Руководство по безопасности.
Ответ 5
Вы можете обойти этот механизм безопасности загрузки spring. Ниже приведен пример ниже:
@SpringBootApplication
@EnableAutoConfiguration(exclude = {SecurityAutoConfiguration.class})
public class SampleSpringBootApplication {
public static void main(String[] args) {
SpringApplication.run(SampleSpringBootApplication.class, args);
}
}