Приветствую Вас ГостьВторник, 14.05.2024, 00:05

Программирование на Java, Android, Delphi


Блог

Главная » 2014 » Август » 25 » Аутентификация через область безопасности JDBC
17:43
Аутентификация через область безопасности JDBC

Если нам нужно провести аутентификацию и авторизацию пользователей, информация о которых лежит в базе данных, то нужно использовать область безопасности jdbc. Для этого создадим 3 таблицы: users, groups, user_groups. Пользователи и группы связаны отношением многие ко многим через таблицу user_groups. Пароли в полльзователях хранятся в виде слепка MD5. Вот схема таблиц:

/******************************************************************************/
/*** Generated by IBExpert 25.08.2014 17:42:10 ***/
/******************************************************************************/

/******************************************************************************/
/*** Following SET SQL DIALECT is just for the Database Comparer ***/
/******************************************************************************/
SET SQL DIALECT 3;



/******************************************************************************/
/*** Tables ***/
/******************************************************************************/



CREATE TABLE USERS (
 USER_ID INTEGER NOT NULL,
 USERNAME VARCHAR(20) NOT NULL,
 "PASSWORD" VARCHAR(32)
);




/******************************************************************************/
/*** Primary Keys ***/
/******************************************************************************/

ALTER TABLE USERS ADD CONSTRAINT PK_USERS PRIMARY KEY (USER_ID);


/******************************************************************************/
/*** Privileges ***/
/******************************************************************************/

/******************************************************************************/
/*** Generated by IBExpert 25.08.2014 17:42:32 ***/
/******************************************************************************/

/******************************************************************************/
/*** Following SET SQL DIALECT is just for the Database Comparer ***/
/******************************************************************************/
SET SQL DIALECT 3;



/******************************************************************************/
/*** Tables ***/
/******************************************************************************/



CREATE TABLE GROUPS (
 GROUP_ID INTEGER NOT NULL,
 GROUP_NAME VARCHAR(50) NOT NULL
);




/******************************************************************************/
/*** Primary Keys ***/
/******************************************************************************/

ALTER TABLE GROUPS ADD CONSTRAINT PK_GROUPS PRIMARY KEY (GROUP_ID);


/******************************************************************************/
/*** Privileges ***/
/******************************************************************************/

/******************************************************************************/
/*** Generated by IBExpert 25.08.2014 17:42:44 ***/
/******************************************************************************/

/******************************************************************************/
/*** Following SET SQL DIALECT is just for the Database Comparer ***/
/******************************************************************************/
SET SQL DIALECT 3;



/******************************************************************************/
/*** Tables ***/
/******************************************************************************/



CREATE TABLE USER_GROUPS (
 USER_ID INTEGER NOT NULL,
 GROUP_ID INTEGER NOT NULL
);




/******************************************************************************/
/*** Primary Keys ***/
/******************************************************************************/

ALTER TABLE USER_GROUPS ADD CONSTRAINT PK_USER_GROUPS PRIMARY KEY (USER_ID, GROUP_ID);


/******************************************************************************/
/*** Foreign Keys ***/
/******************************************************************************/

ALTER TABLE USER_GROUPS ADD CONSTRAINT FK_USER_GROUPS_1 FOREIGN KEY (USER_ID) REFERENCES USERS (USER_ID);
ALTER TABLE USER_GROUPS ADD CONSTRAINT FK_USER_GROUPS_2 FOREIGN KEY (GROUP_ID) REFERENCES GROUPS (GROUP_ID);


/******************************************************************************/
/*** Privileges ***/
/******************************************************************************/

Далее создадим вью в БД, которая объединяет пользователей и группы:

 

/*-------------------------------------------------------------------------*/
/* Creating new views */
/*-------------------------------------------------------------------------*/

CREATE OR ALTER VIEW V_USER_GROUPS(
 USER_ID,
 USERNAME,
 "PASSWORD",
 GROUP_ID,
 GROUP_NAME)
AS
select ug.user_id, u.username, u."PASSWORD", ug.group_id, g.group_name from user_groups ug
inner join users u on ug.user_id = u.user_id
inner join groups g on ug.group_id = g.group_id
;
/*-------------------------------------------------------------------------*/
/* Restoring descriptions for views */
/*-------------------------------------------------------------------------*/

/*-------------------------------------------------------------------------*/
/* Restoring descriptions of view columns */
/*-------------------------------------------------------------------------*/

/*-------------------------------------------------------------------------*/
/* Restoring privileges */
/*-------------------------------------------------------------------------*/

GRANT SELECT, UPDATE, DELETE, INSERT ON V_USER_GROUPS TO "PUBLIC";

Теперь создаем и конфигурируем область безопасности согласно рисунку:

Категория: Java EE | Просмотров: 618 | Добавил: alex | Рейтинг: 5.0/1
Категории раздела
Java (Общие вопросы) [17]
Java (Библиотека, пакеты Java) [17]
Java (Разработка программного обеспечения на Java) [5]
Java (Среда разработки NetBeans) [5]
JSF + PrimeFaces [21]
Java EE [11]
Разное [3]
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Поиск
Календарь
«  Август 2014  »
ПнВтСрЧтПтСбВс
    123
45678910
11121314151617
18192021222324
25262728293031
Архив записей