Это старая форма, использующая старый адрес action
(основная проблема, вызывающая перенаправление) и старые имена для имени пользователя/пароля (скрытая проблема, которая была бы более расстраивающей, поскольку она всегда терпит неудачу с правильными значениями, поскольку они 'не могут использоваться, если они установлены для неправильных имен параметров).
Это не так просто в 3.x, как это было в 2.x, чтобы переопределить файлы плагинов. В плагинах 2.x хранятся файлы zip, распакованные в каталоге вашего проекта target
, и вы можете делать правильные и/или сумасшедшие вещи с помощью источника плагина. В 3.x плагины составлены банками, поэтому, надеюсь, мы сократили общее количество сумасшедших, но мы также усложнили выполнение подобных действий.
Но это программное обеспечение с открытым исходным кодом, а точный .gsp-файл или тот, который достаточно близко, очень легко найти в исходном репо, которое равно here.
auth.gsp
изменение редко, так что это нормально, чтобы получить latest file from the master branch, или вы могли бы посмотреть историю (recentl билдов и будущее строит по-прежнему будет помечено), поэтому было бы легко получить старую версию, например, from version 3.0.4.
Это не обязательно окончательный ответ, хотя из-за того, что плагин очень настраиваемый, и вы можете переопределить несколько переменных, используемых в GSP, в конфигурации, поэтому вы должны заменить код, который ищет значения только с значениями, поскольку ваше приложение маловероятно чтобы извлечь выгоду из этой гибкости. Настройки по умолчанию для параметров конфигурации находятся в DefaultSecurityConfig.groovy
, но я оставил эти GSP внутри кода поиска, поэтому вам просто нужно удалить это и сохранить значения.
Вот внутренний form
элемент (вам нужен весь файл, но я не показаны детали, которые не нужны изменения):
<form action="${postUrl ?: '/login/authenticate'}" method="POST" id="loginForm" class="cssform" autocomplete="off">
<p>
<label for="username"><g:message code='springSecurity.login.username.label'/>:</label>
<input type="text" class="text_" name="${usernameParameter ?: 'username'}" id="username"/>
</p>
<p>
<label for="password"><g:message code='springSecurity.login.password.label'/>:</label>
<input type="password" class="text_" name="${passwordParameter ?: 'password'}" id="password"/>
</p>
<p id="remember_me_holder">
<input type="checkbox" class="chk" name="${rememberMeParameter ?: 'remember-me'}" id="remember_me" <g:if test='${hasCookie}'>checked="checked"</g:if>/>
<label for="remember_me"><g:message code='springSecurity.login.remember.me.label'/></label>
</p>
<p>
<input type="submit" id="submit" value="${message(code: 'springSecurity.login.button')}"/>
</p>
</form>
и для начального прохода вы хотели бы изменить его это:
<form action="/login/authenticate' method="POST" id="loginForm" class="cssform" autocomplete="off">
<p>
<label for="username"><g:message code='springSecurity.login.username.label'/>:</label>
<input type="text" class="text_" name="username" id="username"/>
</p>
<p>
<label for="password"><g:message code='springSecurity.login.password.label'/>:</label>
<input type="password" class="text_" name="password" id="password"/>
</p>
<p id="remember_me_holder">
<input type="checkbox" class="chk" name="remember-me" id="remember_me"/>
<label for="remember_me"><g:message code='springSecurity.login.remember.me.label'/></label>
</p>
<p>
<input type="submit" id="submit" value="${message(code: 'springSecurity.login.button')}"/>
</p>
</form>
вы можете использовать любой почтовый URL и имя пользователя/имена Param пароля, которые вы хотите, включая старые, но вы должны установить свойство конфигурации около того фильтра Spring Security, который обрабатывает логины смотрит на правильном URI и ожидает, что param n которые вы отправляете. Если вы в порядке со значениями по умолчанию, это будет работать, и вы можете, конечно, сделать любые обычные изменения HTML и CSS/JS, которые вы хотите.