Использование файла свойств для учетных данных пользователя с настройкой Java в Spring Security - PullRequest
0 голосов
/ 10 января 2019

В конфигурации XML можно ссылаться на файл свойств, определяющий учетные данные пользователя. Например:

<security:user-service id="userDetailsService" properties="classpath:users.properties"/>

Однако в конфигурации Java нет альтернативы по умолчанию (о которой я знаю), но вы пишете свою собственную реализацию, например:

@Bean
public UserDetailsService userDetailsService() {
    Properties properties = new Properties();
    try {
        File file = ResourceUtils.getFile("classpath:users.properties");
        properties.load(new FileInputStream(file));

        return new InMemoryUserDetailsManager(properties);
    } catch (IOException e) {
        e.printStackTrace();
        throw new RuntimeException(e);
    }
}

Мне было интересно, можно ли добавить это, чтобы это обеспечивалось рамкой безопасности пружины из коробки. Что-то вроде:

@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
    auth.inMemoryAuthentication("classpath:user.properties")
    ...

или

@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
    auth.inMemoryAuthentication().withUserCredentialsFile("classpath:user.properties")
    ...

1 Ответ

0 голосов
/ 16 января 2019

Я не уверен, имеет ли смысл добавлять это улучшение в Spring Security. Как вы отметили, эквивалентная конфигурация Java будет:

@Bean
public UserDetailsService userDetailsService() throws Exception {
    Properties users = PropertiesLoaderUtils.loadAllProperties("users.properties");
    return new InMemoryUserDetailsManager(users);
}

Это выглядит довольно просто для пользователя. Что ты думаешь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...