Итак, мне нужна помощь с макетом / структурой моего проекта. Я создаю веб-сайт, и пока у меня есть рабочая страница входа в систему, которая аутентифицирует пользователя с помощью Apache Shiro на сервере LDAP и перенаправляет пользователя на страницу-заставку. В зависимости от разрешений, которые есть у пользователя, они должны / не должны иметь возможность просматривать определенные вещи на странице-заставке.
Что я хотел бы сделать, так это создать нового ShiroUser из информации о сеансе (т.е. пользователя, который только что вошел в систему) и назначить им некоторые роли. Так, например,
def shiroUser = new ShiroUser()
shiroUser.username = session.username
shiroUser.addToRoles(ShiroRole.findByName('ROLE_USER'))
shiroUser.save()
и ROLE_USER
будет определяться
def shiroRole = new ShiroRole()
shiroRole.name='ROLE_USER'
shiroRole.save()
Прямо сейчас меня просто интересует его жесткое кодирование, а затем адаптация для поиска в таблице и назначения ролей на основе значений в этой таблице.
Что мне интересно, так это
- Куда мне положить это?
- Могу ли я создать для этого новый контроллер?
- Где я могу определить shiroRoles?
- Это вообще разумно? (Создание нового ShiroUser каждый раз, когда кто-то входит в систему)
Я никогда раньше не создавал веб-сайт, поэтому я не уверен, как мне структурировать код или где разместить материал. (Я, кстати, использую GGTS.) Буду очень признателен за некоторые указания / советы! Я использую множество книг, таких как Grails in Action, Making Java Groovy и The Definitive Guide to Grails 2, чтобы помочь, но большинство их примеров не соответствуют тому, что я хотел бы сделать. Если есть какие-то учебные пособия, которых я не нашел, мне интересно их увидеть. (Я просмотрел много, но у них есть просто фрагменты кода, как я перечислил, но не указываю, куда они на самом деле идут!)