develNotes

/*айтишные заметки*/

05.05.2013

Пример: Ajax с помощью JQuery в Spring MVC.

Для реализации Ajax в Spring MVC не принципиально, какую JavaScript библиотеку использовать, наверное самый распространенный способ - использование JQuery для создания Ajax запроса и обработки ответа от сервера. Посмотрим на простой пример, как можно это сделать. Сначала создаем простое веб-приложение Spring MVC, в данном случае используем Spring Tool SuiteДля того чтобы создать необходимый шаблонный веб-проект, нужно выбрать File > New > Spring Template Project > Spring MVC Project. После этого у нас есть полноценный проект, со всеми включенными зависимостями, которыми управляет Maven. STS автоматически создал необходимые файлы конфигурации, менять которые пока не нужно. Кроме того, у нас есть один контроллер - HomeController.java и домашняя страница - home.jsp. Для начала приступим к изменению контроллера:
@Controller
public class HomeController { 
 
 @RequestMapping(value = "/getCharNum", method = RequestMethod.GET)
 public @ResponseBody Response getCharNum(@RequestParam String text) { 
 
  Response result = new Response();

  if (text != null) {
   result.setText(text);
   result.setCount(text.length());
  }
  
  return result;
 }
 
 @RequestMapping(value = "/", method = RequestMethod.GET)
 public String home(Locale locale, Model model) {
  return "home";
 }
}
Теги: javaEE Spring     Далее

12.10.2014

JavaEE: Пример использования Spring Security.

UPDATE: Возможно вам будет интересен пример использования Spring Security 4 и AngularJS.

Spring Security - фреймворк, предоставляющий удобную реализацию механизмов аутентификации и авторизации в Java EE приложениях. Раньше был известен как Acegi Security, а в 2008 году был включен в проект Spring. Является стандартом де-факто для веб-приложений Spring MVC. Использовать Spring Security очень удобно и просто - без особых усилий можно создать гибкую систему управления правами в вашем веб-приложении.

Для того, чтобы показать как это работает - приведу простой, но подробный пример приложения, которое использует Spring Securtiy. Приложение будет состоять из страницы входа и закрытой страницы, доступ к которой имеет только один пользователь. Как нетрудно догадаться, это будет веб-приложение Spring MVC. Итак, цель поставлена, инструменты определены, приступаем к делу!

Для примера создаем шаблонный проект веб-приложения Spring MVC, используя Spring Tool Suite (File > New > Spring Template Project > Spring MVC Project ).

После этого у нас уже есть простое веб-приложение, которое можно запустить на сервере (ссылку на полный код примера можно найти в конце поста). Первое что необходимо сделать - добавить в pom.xml необходимые зависимости:

<dependency>
			<groupId>org.springframework.security</groupId>
			<artifactId>spring-security-core</artifactId>
			<version>${org.springframework-version}</version>
</dependency>

<dependency>
			<groupId>org.springframework.security</groupId>
			<artifactId>spring-security-web</artifactId>
			<version>${org.springframework-version}</version>
</dependency>

<dependency>
			<groupId>org.springframework.security</groupId>
			<artifactId>spring-security-config</artifactId>
			<version>${org.springframework-version}</version>
</dependency>

25.04.2015

Spring Security и Mysql - практический пример.

UPDATE: Возможно вам будет интересен пример использования Spring Security 4 и AngularJS.

Я уже упоминал про JavaEE фреймворк Spring Security и приводил простой пример его использования. Этот пример включает в себя создание веб приложения с двумя страницами - страница логина и закрытая страница. Для авторизации, как ясно, там используется Spring Security. Однако имя пользователя и пароль (точнее SHA-1 хэш) в этом примере хранятся в XML файле настройки контекста Spring Security. Понятно, что в реальных задачах данные пользователя, как и его роли, хранятся в базе данных. 

В этом посте я хочу привести усовершенствованный пример, в котором имя пользователя, хэш пароля и роль пользователя в системе будут храниться в БД Mysql. Для основы возьму код предыдущего примера, а полный код для этого поста можно найти ниже. 

Итак, как можно связать авторизацию с помощью Spring и Mysql. Сделать это можно немного по разному, посмотрим на один из способов. Первым делом установим Mysql и создадим тестовую БД, в которой будет одна таблица. В таблице содержится имя пользователя, название его роли в системе, и хэш пароля. Обычно в БД хранят и другую информацию - например дату, до которой аккаунт активен и пр. Но в этом примере этого не будет. 


17.07.2016

Spring Security 4 и AngularJS. Аутентификация в AJAX веб-приложении.

Spring Framework можно назвать стандартом де-факто в мире Java. Еще бы, ведь некоторые концепции, реализованные в этом фреймворке повлияли на саму спецификацию JavaEE. Spring Security является дочерним проектом Spring, и предоставляет средства аутентификации и авторизации для Java/JavaEE приложений. С другой стороны, в мире фронтенда победил JavaScript и фреймворки, позволяющие создавать SPA веб-приложения - AngularJS, ReactJS, BackboneJS и другие. Я хочу привести пример, как можно успешно использовать Spring Security 4 совместно с Angular. В этом примере мы напишем REST бекенд, используя Spring MVC. Также мы реализуем аутентификацию и авторизацию с помощью Spring Security, в то время как на фронтенде будет использоваться AngularJS. 

В целом, пример больше всего ориентирован на backend составляющую. Используя описанный принцип, можно аналогично использовать какой-нибудь другой фреймфорк для фронтенда (например Angular 2). Итак, нашей целью будет создать веб-приложение с несколькими разделами - открытый раздел и два защищенных раздела, в которые имеет доступ только авторизованный пользователь. Все должно работать через AJAX и должна быть функция "запомнить меня".

В примере будет использоваться Java 8, Tomcat 8, Spring 4.3, Spring Security 4.1, AngularJS 1.4.9. В конце поста вы можете найти ссылку на полный код проекта.