1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/log4j-jfinalshiroplugin

Клонировать/Скачать
README.md 4.3 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 02.12.2024 05:32 9ae6b83

Данный проект давно не поддерживается, его обслуживание прекращено

JFinalShiroPlugin

Это расширение для @玛雅牛 JFinalShiroPlugin, предназначенное для работы с jfinal 3.0+. Оно поддерживает shiro-теги.

Версия 3.3 доступна по ссылке: https://gitee.com/log4j/jfinalshiroplugin/tree/1.3/


Использование

1. Добавление в pom

<dependency>
    <groupId>com.github.jieblog</groupId>
    <artifactId>jfinal-shiro</artifactId>
    <version>1.0</version>
</dependency>

2. Конфигурация jfinal config

Если используется jf template, то создайте ShiroPlugin (engine), обратите внимание, что это уже не объект Routes.

public class LmsCoreConfig extends JFinalConfig {
  
    private Engine engine;

    /**
     * Конфигурирование движка
     *
     * @param me Engine
     */
    public void configEngine(Engine me) {
        this.engine = me;
    }

    /**
     * Настройка плагина
     *
     * @param me Plugins
     */
    public void configPlugin(Plugins me) {
        ShiroPlugin shiroPlugin = new ShiroPlugin(engine);
        shiroPlugin.setLoginUrl("/login");
        shiroPlugin.setUnauthorizedUrl("/unauthorized");
        me.add(shiroPlugin);
    }

    /**
     * Настроить перехватчик
     *
     * @param me Interceptors
     */
    public void configInterceptor(Interceptors me) {
        me.add(new ShiroInterceptor());
    }

}

3. Использование на странице

Получение информации о субъекте Principal
  #principal()


Отображение соответствующей информации, если пользователь не прошёл аутентификацию, т. е. является гостем.
 #guest()
   body
 #end


Пользователь уже прошёл аутентификацию/запомнил меня при входе, отображение соответствующей информации.
 #shiroUser()
   body
 #end

Пользователь успешно прошёл аутентификацию через Subject.login, но не запомнил меня.
 #authenticated()
    body
 #end
 

Пользователь прошёл аутентификацию без вызова Subject.login, включая запомнивший меня автоматический вход.
 #noAuthenticated()
    body
 #end

 Проверка наличия у текущего субъекта определённого разрешения
 #hasPermission(permissionName)
    body
 #end
 
Проверка принадлежности текущего пользователя к определённой роли
#hasRole(roleName)
 body
#end
 
Проверка принадлежности текущего пользователя ко всем указанным ролям
 #hasAllRoles(roleName1,roleName2)
    body
 #end
 
Проверка принадлежности текущего пользователя хотя бы к одной из указанных ролей
 #hasAnyRoles(roleName1,roleName2)
    body
 #end
 
Проверка наличия всех указанных разрешений у текущего субъекта
 #hasAllPermission(permissionName1,permissionName2)
    body
 #end
 
Отсутствие у текущего субъекта указанного разрешения
  #lacksPermission(permissionName)
     body
  #end

Отсутствие роли у текущего субъекта
 #lacksRole(roleName)
    body
 #end

4. Обработка особых случаев

Если в общем файле шаблона есть использование shiro-тегов, добавьте их после afterJFinalStart, а не в configEngine.

   /**
     * Запуск после обратного вызова
     */
    public void afterJFinalStart() {
        engine.addSharedFunction("xxxx.html");
    }

PS

Пример можно найти здесь: http://git.oschina.net/log4j/LMS

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/log4j-jfinalshiroplugin.git
git@api.gitlife.ru:oschina-mirror/log4j-jfinalshiroplugin.git
oschina-mirror
log4j-jfinalshiroplugin
log4j-jfinalshiroplugin
master