EJB - Безопасность
Безопасность - главная забота любого приложения корпоративного уровня. Он включает идентификацию пользователя (ей) или системы, осуществляющей доступ к приложению. На основе идентификации он разрешает или запрещает доступ к ресурсам в приложении. Контейнер EJB управляет стандартными проблемами безопасности или может быть настроен для решения любых конкретных проблем безопасности.
Важные условия безопасности
Authentication - Это процесс, обеспечивающий проверку подлинности пользователя, получающего доступ к системе или приложению.
Authorization - Это процесс, гарантирующий, что подлинный пользователь имеет необходимый уровень полномочий для доступа к системным ресурсам.
User - Пользователь представляет клиента или систему, которая обращается к приложению.
User Groups - Пользователи могут быть частью группы с определенными полномочиями, например, группа администраторов.
User Roles - Роли определяют уровень полномочий пользователя или разрешений на доступ к системному ресурсу.
Безопасность, управляемая контейнером
EJB 3.0 определяет следующие атрибуты / аннотации безопасности, которые реализуют контейнеры EJB.
DeclareRoles- Указывает, что класс примет заявленные роли. Аннотации применяются на уровне класса.
RolesAllowed- Указывает, что к методу может получить доступ пользователь с указанной ролью. Может применяться на уровне класса, в результате чего все методы класса могут быть доступны для пользователя с указанной ролью.
PermitAll- Указывает, что бизнес-метод доступен всем. Его можно применять как на уровне класса, так и на уровне метода.
DenyAll - Указывает, что бизнес-метод недоступен для любого пользователя, указанного на уровне класса или метода.
пример
package com.tutorialspoint.security.required;
import javax.ejb.*
@Stateless
@DeclareRoles({"student" "librarian"})
public class LibraryBean implements LibraryRemote {
@RolesAllowed({"librarian"})
public void delete(Book book) {
//delete book
}
@PermitAll
public void viewBook(Book book) {
//view book
}
@DenyAll
public void deleteAll() {
//delete all books
}
}
Конфигурация безопасности
Сопоставьте роли и группы пользователей в файле конфигурации.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sun-ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 9.0 EJB 3.0//EN" "http://www.sun.com/software/appserver/dtds/sun-ejb-jar_3_0-0.dtd">
<ejb-jar>
<security-role-mapping>
<role-name>student</role-name>
<group-name>student-group</group-name>
</security-role-mapping>
<security-role-mapping>
<role-name>librarian</role-name>
<group-name>librarian-group</group-name>
</security-role-mapping>
<enterprise-beans/>
</ejb-jar>