Мы нашли хорошее решение этой проблемы, которое я собираюсь объяснить шаг за шагом: во-первых, если вы хотите использовать пользовательскую страницу входа, у вас есть два варианта: 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
blockquote>
Существует два преобладающих варианта использования. Первое должно измерить, отследить и ограничить использование API. Если кто-то создает сервис, который позволяет третьим лицам получать доступ к нему, поставщик услуг может хотеть управлять (или по крайней мере знать), у кого есть доступ так, чтобы они могли попытаться предотвратить вещи как атаки "отказ в обслуживании". На мере и стороне дорожки, интересная информация может быть получена, такие как знание, какие приложения распространены для доступа к сервису или какие люди функций используют большинство.
Другой вариант использования связан с безопасностью и аутентификацией. Неблагоразумно для поставщика услуг сделать приложения сторонних производителей, и сервисы требуют, чтобы пользователи бросили свое имя пользователя и пароль для основного сервиса. Это - огромное воздействие. Именно поэтому многие сервисы стандартизируют на протоколах, таких как OAuth, который обеспечивает делегированный доступ с помощью авторизации к данным пользователя. В то время как не надежный, это определенно предпочтительно для распределения удостоверений пользователя неизвестным, и недоверяемым, сторонам.
Обычно это раньше надевало статистику сколько приложения, выполняющего запросы к API. Я думаю, прося, чтобы имя пользователя/пароль с ключом API было ambigious в некоторых случаях, но это - путь, как это реализовано - таким образом, мы не можем сделать чего-то с ним.
Они просят ключ API, потому что у Вас мог быть больше чем один API в соответствии с той же учетной записью - в случае, если у Вас есть больше чем один сайт, которые являются использованием тот же API.
Большую часть времени это должно контролировать, как разработчики используют веб-API. Если они так или иначе не соглашаются с Вашим использованием API, это предоставляет средство им завершить работу его, не причиняя другим пользователям боль. И статистические данные на пользователя/приложение всегда ценны.
Я использовал API flickr - в той ситуации, ключ является Вашим, но данные входа в систему могли бы быть теми из людей, использующих Ваше приложение, таким образом, ключ API является единственным способом дифференцироваться между приложениями.
Они могли использовать его для выражения, какую версию API Вы пытаетесь использовать. Возможно, в Версии 1.0, существует метод, который занимает пост на www.UPS.com/search и существует другой в версии 2.0 в том же адресе, но берет другой набор параметра или даже возвращает данные в другом формате / стиль. Ваша программа была основана на V1.0 и ожидает определенный контракт API. Они хотят смочь создать V2.0, не вмешиваясь в продукты их клиента.
Это - просто предположение, но это звучит хорошим мне.
Я думаю, что Gracenote делает подобную вещь для cddb. Я забываю детали, но я помню что-то о некотором маркере.
(Они / действительно драконовские правила об использовании их сервиса также.)
Simon напомнил мне, какова gracenote вещь была. Gracenote и FedEx и другие веб-сервисы имеют много разработчиков, пишущих приложения для программного обеспечения. Таким образом, разработчики заставляют маркер помещать в их приложения, но конечные пользователи имеют свое собственное имя пользователя и пароль. Это позволяет сервисам следить за злоупотреблением программами и т.д. Это - вероятно, te основная причина. (как браузер или webbot информирование веб-сервера, кто/какой это),
Первоначально Blogger требовал от вас подачи заявки на ключ API (как в Google Maps) и использовал его для ограничения доступа к API. По мере того как Blogger превратился в Metaweblog, требования к API стали менее важными, и Blogger больше не требует от вас подачи заявки на ключ. Как отметили другие, его все еще можно использовать для отслеживания.