Как залогиниться в пользовательский компонент без сохранения состояния

1

Я смущен тем, как я должен проверять зарегистрированного пользователя. Я думал о вызове bean-компонента из состояния без состояния, но я прочитал эту тему, доступ к существующему экземпляру stateful внутри апатрида, java ee 6

Вот моя идея.

ProductBean.java

@Stateless
@LocalBean
public class ProductBean {
    @EJB private UserBean userBean; // UserBean is SFSB
    public Product addProduct(Product product) {
        if(userBean == null || userBean.getLoggedInUser() == null) {
            // throw an exception
        }
        // persist 
    }
}

ProductController.java

@ManagedBean
@RequestScope
public class ProductController {
    @EJB private ProductBean productBean;
    private Product product;
    public void addProduct() {
        Object result = productBean.addProduct(productBean);
    }
}

Заранее спасибо. :)

Теги:
validation
java-ee
stateless

2 ответа

2
Лучший ответ

Если вы хотите защитить свои компоненты, лучше использовать механизмы безопасности Java EE, такие как @RolesAllowed и @RolesAllowed sessionContext.getCallerPrincipal() вместо создания собственных механизмов. Если вы выполните надлежащую проверку подлинности в веб-модуле, контекст безопасности будет распространен на EJB.

Блестки состояния - не очень хорошая идея, и особенно в вашем дизайне. Вы не можете использовать бобы с состоянием в фазах без состояния, поскольку экземпляры фаз без учета состояния повторно используются среди разных вызовов/пользователей.

  • 0
    спасибо за ваш ответ, я буду читать статьи о контексте сессии. Вы предлагали учебный сайт для начинающих в этой области?
  • 0
    @bell Взгляните на ссылку на Java EE Tutorial, которую endriu_l опубликовал в своем ответе, и он показывает все это.
0

О защите бобы - вы должны использовать javax.ejb.SessionContext чтобы получить основную информацию или проверить определенную роль и перейти оттуда.

Есть несколько хороших примеров, касающихся безопасности в учебнике Oracle Java EE 6

Ещё вопросы

Сообщество Overcoder
Наверх
Меню