Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Java.doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
791.55 Кб
Скачать

Технология Hibernate

Hibernate — библиотека для языка программирования Java, предназначенная для решения задач объектно-реляционного отображения (object-relational mapping — ORM). Она представляет собой свободное программное обеспечение с открытым исходным кодом (open source), распространяемое на условиях GNU Lesser General Public License. Данная библиотека предоставляет лёгкий в использовании каркас (фреймворк) для отображения объектно-ориентированной модели данных в традиционные реляционные базы данных.

List cats = sess.createCriteria(Cat.class)

.add( Restrictions.like("name", "Fritz%") )

.add( Restrictions.between("weight", minWeight, maxWeight) )

.list();

Безопасность в веб приложениях. Аутентификация и Авторизация: определение и используемые технологии.

Authentication (auth) – Идентификация пользователя

Authorization (authz) – проверка прав пользователя

Типы Auth в веб-приложении

-Basic

-Form

-SSO (NTLMv2, OpenID, Custom)

Где хранить данные для auth/authz

Своя база данных (на уровне приложения)

LDAP

Корпоративный LDAP

MS Active Directory

Способы реализации

С использованием стандарта JEE Security

Контейнер реализует механизмы auth/authz

Администратор настраивает сервер приложений для своей инфраструктуры

Своя реализация или Spring Security

Большая гибкость в логике

Независимость от сервера приложений

Средства диагностики приложений. Протоколирование: назначение, основные понятия (Logger, Level, Appender) и реализации. Пример.

Логгер

Логгер представляет собой объект класса org.apache.log4j.Logger, который используется для вывода данных и управления уровнем (детализацией) вывода. В текущей версии – 1.2.16 – Log4Jподдерживает следующие уровни вывода, в порядке возрастания:

  • TRACE

  • DEBUG

  • INFO

  • WARN

  • ERROR

  • FATAL

  • OFF

Установка логгеру определенного уровня означает следующее – сообщения, выводимые с этим или более высоким уровнем, попадут в лог. Сообщения, выводимые с уровнем ниже установленного в лог не попадут. И в этом заключается вся прелесть – можно вставлять в программный код вывод информации на различных уровнях (об ошибках – на уровне ERROR, о нормальном ходе выполнения – на уровнеINFO, отладочную – на уровне DEBUG), а потом гибко регулировать, что именно будет выводиться. Как именно регулировать – мы рассмотрим дальше.

Необходимо упомянуть еще о таком понятии как категория (org.apache.log4j.Category). Фактически это тот же логгер, я, честно сказать, не вижу разницы между ними, тем более что программно логгер наследует категорию. Рекомендуется использовать логгер, потому категорий я не касаюсь. Хотя в некоторых старых библиотеках типа Hibernate используются именно категории. Да и терминологически имя логгера чаще всего в документации называется категорией.

Другим важным свойством логгеров является то, что они организованы иерархично. Каждый логгер имеет имя, описывающее иерархию, к которой он принадлежит. Разделитель – точка. Принцип полностью аналогичен формированию имени пакета в Java.

public class Main { public static void main(String[] args) throws FileNotFoundException, IOException { 1:String nameFile = "log4j.properties"; 2:PropertyConfigurator.configure(nameFile); /*1*/Logger LOG = Logger.getRootLogger(); /*2*/Logger localLog2 = Logger.getLogger("logfile"); /*3*/Enumeration append = LOG.getAllAppenders(); /*3*/while (append.hasMoreElements()) { /*3*/LOG.info("Available appender " + append.nextElement()); /*3*/} LOG.info("Hi Logger info!"); localLog2.warn("logfile write!"); System.out.println("LOG.equals(localLog) is " + LOG.equals(localLog)); } }

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]