Arhn - архитектура программирования

Сопоставление ввода с файлом не работает должным образом - Java

** Этот метод на самом деле возвращает true, если он правильный. Теперь проблема связана с LoginModule (функция JAAS).

В моем методе Java ниже я читаю строки из файла «file.txt». Во время чтения я вывожу каждую строку (это работает нормально), а затем проверяю каждую строку на соответствие строке «creds», состоящей из комбинации имени пользователя и пароля. Я пытался протестировать с "creds", точными строками и, как вы можете видеть ниже, используя три разных типа методов сопоставления. Ничего не работает, и возвращаемый логический «результат» всегда ложный. Кто-нибудь сталкивался с подобной проблемой раньше или мог бы мне помочь?

        // Now perform validation. For login can either read from a file or a 
        // database. You can also incorporate secure password  handling here. 
        System.out.println("Checking username and password: " + username +"/" + password);

        String creds = username + ',' + password;
        boolean result = false;
        try {

              File file = new File("file.txt");
                FileReader fr = new FileReader(file);
                BufferedReader br = new BufferedReader(fr);
                String line;
                while((line = br.readLine()) != null){
                    System.out.println(line);
                    if(line == creds || line.equals(creds) || line.contains(creds)){
                        result = true;
                    }
                }
                br.close();
                fr.close();
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }


    return result; // successful login.


    }

Файл, который читает метод, выглядит так:

alicebob,thisissecure
tracyadam,mypass1
29.10.2014

  • Вы можете опубликовать содержимое входного файла? 29.10.2014
  • line == creds будет работать только в том случае, если две ссылки на объекты совпадают. Чтобы проверить равенство двух строк, вам нужно использовать .equals() или .equalsIgnoreCase() (которые у вас есть). 29.10.2014
  • Я только что проверил это, это работает для меня. Вы уверены, что ваши кредиты точно соответствуют строке? Я вижу, что вы печатаете имя пользователя/пароль, но используете имя пользователя и пароль в переменной cred. Что вы используете в файле? 29.10.2014
  • @DustinF Печать, о которой вы говорите, - это просто строка, которую я распечатываю. Печать, на которую я ссылался, это System.out.println(line); Я делаю это, чтобы знать, что файл читается построчно, и, как я уже сказал, это работает нормально. 29.10.2014
  • проверьте наличие лишнего места в файле, а также в значениях username и password. 29.10.2014

Ответы:


1

Проблема заключалась в неправильной настройке LoginModule. У меня было плавающее логическое значение, которое мне нужно было объявить True в методе сопоставления. Поскольку это было ложным, мой вход в систему не удался сверхурочно. Идет шоу, знайте свою среду и правильную конфигурацию класса.

Вот Java LoginModule, о котором я говорю: http://docs.oracle.com/javase/7/docs/api/javax/security/auth/spi/LoginModule.html

29.10.2014
Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..