Spring rest api, минуя аутентификацию - PullRequest
0 голосов
/ 17 мая 2018

У меня есть модуль с именем "abc", который имеет функцию безопасности для аутентификации пользователя

, а имя пользователя и пароль аутентифицированы на сервере ldap

<authentication-manager alias="authenticationManager" erase-credentials="false">
<authentication-provider ref="preAuthenticatedLdapAuthenticationProvider" />

<ldap-server id="ldapServerIDGreenBus" url="${ldap.URL}/${ldap.Base}"
    manager-dn="${ldap.Username}" manager-password="${ldap.Password}" />

Я перехватываю шаблон URL для всех пользователейу кого есть роль.

Проблема: У меня есть служба забытого пароля , встроенная в этот модуль, которая находится перед входом пользователя, поэтому ни одна роль не была определена, и яЯ принимаю только электронную почту от пользователя, чтобы я мог изменить пароль и отправить его на основной адрес пользователя.

Поэтому я попробовал две вещи

1. <intercept-url pattern="/forgotPassword" access="permitAll"/>

Результат: Ошибка, так как allowAll выполняет аутентификацию, но эторазрешает все шаблоны при условии, что они должны иметь объект аутентификации (имя пользователя и пароль).

2. <http pattern="/forgotPassword" security="none" />

Результат: Ошибка и проверкав почтальоне и показал это

securityAuthError

1 Ответ

0 голосов
/ 17 мая 2018

Вы также можете определить разрешения в файле SecurityConfig с помощью переопределенного метода 'configure'. Я бы попробовал что-то подобное. Я добавил приведенный ниже URL-адрес "ForgotPassword".

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

@Autowired
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
    auth.authenticationProvider(authProvider);
}

protected void configure(HttpSecurity http) throws Exception {
    http
        .authorizeRequests() 
            .antMatchers("/forgotPassword/**").permitAll()
            .antMatchers("/**").hasRole("USER") 
            .anyRequest().authenticated()
            .and()          
        .formLogin()
            .loginPage("/login")
            .successForwardUrl("/loginSuccess")
            .failureUrl("/loginError")
            .permitAll()                
            .and()
        .logout()
            .logoutRequestMatcher(new AntPathRequestMatcher("/logout"));
}

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