NullPointerException при проверке admin ли пользователь

226
14 декабря 2021, 17:30

при регистрации пользователя нужно проверить явдяется ли он администратором,проще сказать admin ли его логин, и если он админ,то перекидываю его на одну страницу, если нет, то на другую.

Я решил сделать эту проверку при регистрации пользователя

public class Login implements Serializable {
....

  private Role role;
...
 public void registerNewUser(ActionEvent actionEvent) {
        if (!isCustomerExist()) {
            Customer customer = customerRepository.createCustomer(login, password);
            FacesUtils.putUserId(customer.getId());
            if (role.isAdmin()){
                redirectToAdmin();
            }
            redirectToOverview();
        } else {
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Customer already exits"));
        }
    }

    private void redirectToOverview() {
        FacesUtils.redirect("overview.xhtml");
    }
    private void redirectToAdmin() {
        FacesUtils.redirect("admin.xhtml");
    }

@DeclareRoles("ADMIN")
public class Role implements Serializable {
...

  public boolean isAdmin() {
        FacesContext context = FacesContext.getCurrentInstance();
        return context.getExternalContext().isUserInRole("admin");
    }

естественно имеем java.lang.NullPointerException в if (role.isAdmin()), но как это убрать?

правильно ли я понимаю, что метод isadmin проверяет admin ли залогинился?

и это в моем web я прописал

  <security-constraint>
        <display-name>admin</display-name>
        <web-resource-collection>
            <web-resource-name>admin</web-resource-name>
            <description></description>
            <url-pattern>/awizacja/users/*</url-pattern>
            <http-method>GET</http-method>
            <http-method>POST</http-method>
            <http-method>HEAD</http-method>
            <http-method>PUT</http-method>
            <http-method>OPTIONS</http-method>
            <http-method>TRACE</http-method>
            <http-method>DELETE</http-method>
        </web-resource-collection>
        <auth-constraint>
            <description/>
            <role-name>admin</role-name>
        </auth-constraint>
        <user-data-constraint>
            <transport-guarantee>NONE</transport-guarantee>
        </user-data-constraint>
    </security-constraint>
READ ALSO
Нужен ли конструктор, если я использую Getter() and Setter()?

Нужен ли конструктор, если я использую Getter() and Setter()?

Если при создания сущности, его поля я инициализирую с помощью геттеров и сеттеров, нужен ли мне в таком случае конструктор?

103
Преобразовать json в java класс

Преобразовать json в java класс

Как мне преобразовать такой вот json в Java класс с помощью GSON ?

194
Как убрать крайне правый знак в строке ;

Как убрать крайне правый знак в строке ;

Здраствуйте уважаемые форумчанеНа днях начал разрабатывать свой калькулятор на Java и не смог найти нужную в интернете информацию о том как...

84
Задать фон на всю ширину и высоту экрана

Задать фон на всю ширину и высоту экрана

Я новичок в верстке хотел узнать, тк

189