Ошибка входа в систему и mongo db при входе в систему с использованием Spring SecurityJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка входа в систему и mongo db при входе в систему с использованием Spring Security

Сообщение Anonymous »

Я пытаюсь запустить локальный проект, используя mongodb, Springboot, Spring-Security и Docker в качестве технологического стека. При запуске приложения я столкнулся с несколькими проблемами:
  • Любой URL-адрес перенаправляется на /login, хотя я настроил несколько URL-адресов для обхода аутентификации.< /li>
    Я получаю эту ошибку во время запуска (не уверен, что это проблема):com.mongodb.MongoNodeIsRecoveringException: Command failed with error 11600 (InterruptedAtShutdown): 'interrupted at shutdown' on server mongo:27017. The full response is {"ok": 0.0, "errmsg": "interrupted at shutdown", "code": 11600, "codeName": "InterruptedAtShutdown"}
  • Кроме того, когда я указываю имя пользователя и пароль на страницу /login , мне выдается следующая ошибка:
Caused by: com.mongodb.MongoSecurityException: Exception authenticating MongoCredential{mechanism=SCRAM-SHA-1, userName='encora', source='taskmanagement', password=, mechanismProperties=}
Ниже приведены соответствующие классы:
@Configuration
@EnableWebSecurity(debug = true)
public class WebSecurityConfig {
@Bean
protected SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http.csrf()
.disable()
.cors()
.and()
.authorizeHttpRequests()
.requestMatchers((request) -> request.getServletPath().startsWith("/api/auth"))
.permitAll()
.anyRequest()
.authenticated()
.and()
.formLogin();

return http.build();
}

@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}

Я также пытался использовать .antMatchers("/api/auth") вместо .requestMatchers, но все равно получаю ошибку.Ниже приведен класс контроллера:
@RestController
@RequestMapping("/api/auth")
public class UserController {

@Autowired private UserService userService;

@PostMapping("/createUser")
@ResponseStatus(HttpStatus.CREATED)
public void createUser(@NotNull @RequestBody User user) {
LOGGER.info("Creating user: {}", user.getUsername());
userService.saveUser(user);
}

Ниже указан класс обслуживания:
@Service
public class UserService {

@Autowired private UserRepository userRepository;

public User saveUser(User user) {
user.setPassword(
hashPassword(user.getPassword()));

return userRepository.save(user);
}

Ниже приведены соответствующие зависимости:
org.myapp
team-management
1.0.0.0-SNAPSHOT

jar
team-management

org.springframework.boot
spring-boot-starter-web
3.3.2


org.springframework.boot
spring-boot-starter-validation


org.springframework.boot
spring-boot-starter-security
3.2.1


org.springframework.boot
spring-boot-starter-actuator


org.springframework.boot
spring-boot-starter-data-mongodb
2.7.18


Ниже приведены файлы докеров:
version: '3.1'

services:
team-management:
build:
context: .
dockerfile: Dockerfile
image: team-management
ports:
- "8080:8080"
entrypoint: "java -Djava.security.egd=file:/dev/./urandom -jar /app.jar"

mongo:
image: mongo:latest
volumes:
- mongodb_data:/data/db
- ./init-mongo.js:/docker-entrypoint-initdb.d/init-mongo.js
environment:
MONGO_INITDB_DATABASE: taskmanagement
MONGO_INITDB_ROOT_USERNAME: encora
MONGO_INITDB_ROOT_PASSWORD: training
ports:
- 27017:27017
volumes:
mongodb_data:

Файл Docker
FROM openjdk:8

ARG JAR_FILE=target/team-management.jar

COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java", "-classpath", "app.jar", "org.encora.myapp.TeamManagementApplication"]
ENTRYPOINT ["java","-jar","/app.jar"]


Подробнее здесь: https://stackoverflow.com/questions/791 ... g-security
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»