Интеграция Keycloak с загрузкой Spring, используя пользовательскую страницу входа (вход без стандартной страницы входа Keycloak)

Более простой алгоритм деления и покоя работает для случая, когда существует более 1/2 элементов, которые являются одинаковыми, и для некоторого целого k существует n = 2 ^ k элементов.

FindMost(A, startIndex, endIndex)
{  // input array A

if (startIndex == endIndex)  // base case
        return A[startIndex]; 
x = FindMost(A, startIndex, (startIndex + endIndex - 1)/2);
y = FindMost(A, (startIndex + endIndex - 1)/2 + 1, endIndex);

if (x == null && y == null) 
    return null;
else if (x == null && y != null) 
    return y;
else if (x != null && y == null) 
    return x;
else if (x != y) 
    return null;
else return x

}

Этот алгоритм может быть изменен так, что он работает для n, который не является показателем 2, но граничные случаи должны быть тщательно обработаны.

0
задан Aliy 16 January 2019 в 10:07
поделиться

1 ответ

Мы нашли хорошее решение этой проблемы, которое я собираюсь объяснить шаг за шагом: во-первых, если вы хотите использовать пользовательскую страницу входа, у вас есть два варианта: 1. Изменение существующей темы keycloak, такой как login / registration / passwordupdate, который можно найти через каталог / keycloak / themes / * 2. Это может быть немного сложно - этого можно добиться, изменив AuthenticationProvider в Spring Security в вашем проекте.

override fun configure(http: HttpSecurity?) {
        http
            ?.authorizeRequests()
            ?.antMatchers("/**")?.authenticated()
            ?.and()
            ?.authenticationProvider(myAuthenticationProvider)
            ?.formLogin()
            ?.loginPage("/login")
            ?.successHandler { request, response, authentication ->  redirectStrategy.sendRedirect(request, response, "/main")}
            ?.permitAll()
            ?.usernameParameter("username") //the username parameter in the queryString, default is 'username'
            ?.passwordParameter("password") //the password parameter in the queryString, default is 'password'
            ?.and()
            ?.logout()
            ?.logoutUrl("/logout") //the URL on which the clients should post if they want to logout
            ?.invalidateHttpSession(true)
            ?.and()
            ?.exceptionHandling()
    }

MyAuthenticationProvider Вы должны переопределить этот класс безопасности Spring

Еще одна вещь, которую я задал в предыдущем вопросе, что если я использую rest api для доступа к проекту Spring, в этом случае вам следует реализовать KeycloakWebSecurityConfigurerAdapter вместо WebSecurityConfigurerAdapter

0
ответ дан Aliy 16 January 2019 в 10:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: