Доступ, настроенный в Спринг Секурити

Кто-то мог бы помогать мне в доступе посредством Спринг Секурити, я требую, чтобы autentificación (Login) реализовал посредством процедуры хранение (SP), которое возвращает символ 'V' или 'F', как это был случай.

Как я говорю Спринг Секурити, что переводчик возврат SP в доступе списков пользователей и conventir эта интерпретация в сеансе Спринг?

Большинство примеров осуществляет доступ, сходный со следующим:

<security:intercept-url pattern="/index" access="hasRole('ROLE_ADMIN')" />
1
задан 19.03.2016, 03:26
1 ответ

Она autenticaciГіn в Спринг Секурити он осуществляется посредством AuthenticationProvider, который является тем, кто обрабатывает одну peticiГіn autenticaciГіn возвращая объект с Вашими верительными грамотами. Я помещаю тебе пример:

@Component
public class MyAuthenticationProvider implements AuthenticationProvider {

  @Override
  public Authentication authenticate(Authentication authentication) 
  throws AuthenticationException {
    String user = authentication.getName();
    String password = authentication.getCredentials().toString();

    Set<GrantedAuthority> grantedAuths = new HashSet<>();
    // autentica con tu procedimiento PLSQL a traves de un DAO o lo que sea
    if (callPlSqlDao()=="V") {
        //Aqui le das los roles que correspondan
        grantedAuths .add(new SimpleGrantedAuthority("ROLE_USER"));
        return new UsernamePasswordAuthenticationToken(name, password, grantedAuths);
    } else {
        throw new AuthenticationException("No ha sido posible la autenticacion");
    }
  }

  @Override
  public boolean supports(Class<?> authentication) {
    return authentication.equals(UsernamePasswordAuthenticationToken.class);
  }

  private String callPlSqlDAO() {
    ....
  }

}

Это потом ты должен конфигурировать это в xml или в классе configuraciГіn корреспондент, например:

<http use-expressions="true">
    <intercept-url pattern="/user/**" access="isAuthenticated()"/>
    <http-basic/>
</http>

<authentication-manager>
    <authentication-provider ref="MyAuthenticationProvider" />
</authentication-manager>

Надеялся, что он служит тебе помощью

2
ответ дан 24.11.2019, 14:42