Да, я уверен (как вы предполагали) проблема с опциями.
Я предпочитаю писать мои тернарные операторы вроде этого ...
let num = (isTrue) ? (1) : (0)
Конечно, вы можете выбрать то, что находится в круглых скобках, будь то буквальный (как показано) или нет.
Переопределите свойства в messages.properties внутри пружинного контейнера безопасности. Например, добавьте в путь к классам myMessages.properties и добавьте источник сообщения в контекст:
AbstractUserDetailsAuthenticationProvider.badCredentials=Username/Password entered is incorrect.
AbstractUserDetailsAuthenticationProvider.disabled=Your account is diabled, please contact administrator.
В Salvin Francis:
Message Source Bean
<bean id="messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames">
<list>
<value>myMessages</value>
</list>
</property>
</bean>
Я новичок в Spring, но попробуйте это на сервере:
throw new BadCredentialsException("This is my custom message !!");
Конечно, чтобы это работало, вам нужен класс, который является провайдером аутентификации.
Вот исправление JSP EL для этого. Больше похоже на взлом, чем на элегантное решение, но делает работу быстро и грязно. Предупреждение - это небезопасно для i18n! Только английский.
Для этого требуется библиотека тегов функций:
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
И код замены:
${fn:replace(SPRING_SECURITY_LAST_EXCEPTION.message, 'Bad credentials', 'Username/Password are incorrect')}