Skip to content

Реализация аутентификации на основе базы данных

1. Обзор

Выполняет аутентификацию на основе базы данных, позволяя разным пользователям входить в систему.

В этой статье мы используем базу данных MySQL в качестве примера для работы.

2. Операционные шаги

2.1 Добавление зависимостей

Скопируйте JAR-пакеты cas-server-support-jdbc-3.5.2.jar и mysql-connector-java-5.1.6-bin.jar.

Перейдите в каталог %TOMCAT_HOME%\webapps\cas\WEB-INF\lib, как показано ниже:

8.png

Примечание: Если вы используете другую базу данных, просто поместите пакет JDBC-драйвера соответствующей базы данных в каталог.

2.2 Создание таблиц базы данных

Ниже показано имя таблицы userinfo, имя пользователя username, пароль userpass:

1587114249986030.png

2.3 Настройка CAS для аутентификации на основе базы данных

2.3.1 Добавление информации о конфигурации базы данных

1) Запустите текстовый редактор от имени администратора и откройте файл %TOMCAT_HOME%\webapps\cas\WEB-INF\deployerConfigContext.xml и найдите в нем следующий код:

  
 <bean id="authenticationManager" class="org.jasig.cas.authentication. AuthenticationManagerImpl">

Вставьте информацию о конфигурации источника данных mysql JDBC перед фрагментом, как показано ниже:

  
 <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> &  
 nbsp; <property name="driverClassName"><value>Driver</value></property>  
 <property name="url"><value>url</value></property> &nbsp  
;<property name="username"><value>Имя пользователя базы данных</value></property> <  
 property name="password"><value>Пароль базы данных</value></property> </bean>

Как показано на рисунке ниже:

75.png

Примечание: Драйвер заменяется драйвером соответствующей базы данных, в случае MySQL это com.mysql.jdbc.Driver, а URL - jdbc:mysql://ip:port/databaseName, а имя пользователя и пароль базы данных заменяются реальными именем пользователя и паролем.

Если вы используете другую базу данных, обратитесь к разделу [[Конструктор] JDBC Подключение к базам данных](https://help.finereport.com/doc-view-101.md), чтобы узнать драйвер и URL.

2.3.2 Добавление информации об аутентификации пользователя

1) Запустите текстовый редактор от имени администратора и откройте файл %TOMCAT_HOME%\webapps\cas\WEB-INF\deployerConfigContext.xml и найдите в нем следующий код:

<bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />

Примечание: Это конфигурационное сообщение использует SimpleTestUsernamePasswordAuthenticationHandler для аутентификации пользователя, т.е. по умолчанию аутентификация проходит, если имя пользователя и пароль одинаковые, и не проходит, если имя пользователя и пароль разные. Нам нужно заменить его информацией о конфигурации аутентификации на основе базы данных.

и закомментируйте его, как показано ниже:

223.png

2) Вставьте под ним следующий код:

  
 <bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler"> & nbsp; <property name="dataSource" ref="  
 dataSource" /> < property name="sql" value="select userpass from userinfo where username=?  
 " /> </bean

Вставьте информацию о конфигурации, как показано ниже:

55.png

параметрыучитывать
QueryDatabaseAuthenticationHandlerэто один из интерфейсов запросов, предоставляемых cas-server-support-jdbc.QueryDatabaseAuthenticationHandler настраивается с помощью SQL-запроса для поиска пароля, который соответствует заданному паролю.
dataSourceявляется источником данных при запросе с помощью JDBC.
SQLоператор должен запросить какую таблицу, в данном примере в соответствии с таблицей userinfo поле username запрашивает password, CAS будет соответствовать паролю, введенному пользователем, если он совпадает, то через

3.2.3 Сохранение изменений

Сохраните изменения, внесенные в файл %TOMCAT_HOME%\webapps\cas\WEB-INF\deployerConfigContext.xml.

3.2.4 Перезапуск

Перезапустите службу Tomcat.

3. просмотр результатов

3.1 Тестирование аутентификации на основе базы данных

1) В браузере введите URL https://roxy:8443/cas/login, если IE имеет сертификат предупреждение, непосредственно нажмите, чтобы продолжить просмотр этого сайта (не рекомендуется), CAS будет соответствовать имя пользователя и пароль, введенный пользователем, и userinfo таблице имя пользователя и пароль, как показано на следующем рисунке:
7.png

(2) CAS сопоставляет имя пользователя и пароль, введенные пользователем, с именем пользователя и паролем из таблицы userinfo, если они совпадают, то система показывает, что вход в систему прошел успешно, как показано на следующем рисунке:

6.png