Задать вопрос
Ответы пользователя по тегу Java
  • Как заставить работать интернационализацию в ErrorResponse методах?

    devpav
    @devpav
    Full-Stack разработчик.
    public static final String I18_BUNDLE_LOCATION = "language/messages";
        
    @Bean
        public ResourceBundleMessageSource resourceBundleMessageSource() {
            final var source = new ResourceBundleMessageSource();
            {
                source.setBasename(I18_BUNDLE_LOCATION);
                source.setDefaultEncoding(StandardCharsets.UTF_8.name());
            }
    
            return source;
        }

    66fb3970b8230342940738.png
    @Slf4j
    @Service
    @RequiredArgsConstructor
    public class LocaleI18Service implements LocaleService {
    
        private final ResourceBundleMessageSource messageSource;
    
        @Override
        public String getI18Message(final String i18Code) {
            return getMessage(i18Code, Map.of());
        }
    
        public String getI18Message(final String i18Code, final Map<String, String> args) {
            return getMessage(i18Code, args);
        }
    
        private String getMessage(final String i18Code, final Map<String, String> args) {
            if (Objects.isNull(i18Code)) {
                return null;
            }
    
            final var currentLocale = LocaleContextHolder.getLocale();
    
            final String template = messageSource.getMessage(i18Code, null, currentLocale);
    
            if (Objects.isNull(args) || args.isEmpty()) {
                return template;
            }
    
            return StringSubstitutor.replace(template, args, "{", "}");
        }
    }


    66fb3a32a3346675588143.png

    public interface SystemException {
    
        /**
         * Get args for code
         *
         * @return args message
         */
        Map<String, String> getArgs();
    
        /**
         * Exception code
         *
         * @return i18 code
         */
        String getI18Code();
    
    }


    66fb3aa70b97e285459437.png
    Ответ написан
    Комментировать
  • Как лучше хранить пароли на компьютере клиента?

    devpav
    @devpav
    Full-Stack разработчик.
    Если Вы имеете сервер, то посмотрите в сторону JWT. На основе пароля и соли (ключевое слово) генерировать токен (с ключевым словом которое знает только сервер), который позволит получать информацию о пользователе Вашей системы по этому токену, привязываете к пользователю текущий токен (при желании можно делать срок годности токена).

    1. Не хранить пароли в открытом виде.
    2. Не хранить пароли на стороне пользователя (если есть сервер).
    3. Смешивать пароль с ключевым (Вашим) словом приложения (добавлять соль) и шифровать.
    4. Желательно использовать пароль только для log in, а при получении токена использовать только его.
    Ответ написан
  • Как работает цикл while?

    devpav
    @devpav
    Full-Stack разработчик.
    Привет. Прикольно. Люблю когда пишут сразу boolean isExit = false; и следующим действием while(!isExit).
    Должен работать без проблем, но можно изменить чуть чуть.

    while (!isExit) //пока isExit правда, то

    пока isExit ложь Вы хотели сказать, а !isExit правда.
    Ответ написан
    2 комментария