JSF Спящий режим, устанавливающий привилегии страницы администратора без spring

#mysql #hibernate #authentication #jsf

Вопрос:

Всем привет

Я пытаюсь создать систему управления продуктами на основе JSF Hibernate для администраторов и обычных пользователей. Я пытаюсь установить некоторые привилегии для администраторов. У меня есть столбец для типов пользователей в моем sql и их автоматическая настройка. Мне не разрешается использовать какие-либо свойства spring, это должно быть просто jsf и hibernate. Есть ли способ сделать страницу xhtml доступной/недоступной без защиты spring? У меня есть страница входа в систему, но она просто впускает вас. Если вы используете URL-адрес вручную, вы также можете войти. Это то, что я хочу исправить.

Вот одна из моих админ-специальных страниц. Я хочу, чтобы это было доступно с помощью учетных записей usertype=admin.

 <?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:h="http://xmlns.jcp.org/jsf/html"
                xmlns:f="http://xmlns.jcp.org/jsf/core"
                template="/template/site.xhtml"
                xmlns:a="http://xmlns.jcp.org/jsf/passthrough"
                xmlns:ui="http://xmlns.jcp.org/jsf/facelets">



    <ui:define name="content">
        <main class="d-flex w-100">
            <div class="container d-flex flex-column">
                <div class="row vh-100">
                    <div class="col-sm-10 col-md-8 col-lg-6 mx-auto d-table h-100">
                        <div class="d-table-cell align-middle">
                            <div class="text-center mt-4">
                                <h1 class="h2">Kullanıcı Türü Kayıt Formu</h1>
                                <p class="lead">
                                    Yeni yetki oluşturmak için adını ve izinlerini belirleyin.
                                </p>
                            </div>
                            <div class="card">
                                <div class="card-body">
                                    <div class="m-sm-4">


                                        <h:form> 
                                            <style>
                                                .error{color:red}  
                                            </style>

                                            <div class="form-group">
                                                <label for="inputEmail4">Kullanıcı Türü Adı</label>
                                                <h:inputText class="form-control" value="#{userType.type}" 
                                                             id="type"
                                                             required="true"
                                                             requiredMessage="Kullanıcı türü adı boş olamaz!"
                                                             >
                                                    <f:validator validatorId="only_letter_validator"/>
                                                </h:inputText>
                                                <input type="checkbox" name="permission"> Kullanıcı türü değiştirme </input><br></br>
                                                <input type="checkbox" name="permission1"> Ürün Silme ve Düzenleme </input><br></br>
                                                <input type="checkbox" name="permission2"> Admin Paneline Ulaşabilme </input><br></br>
                                                <input type="checkbox" name="permission3"> Yetki Türü ekleyebilme </input><br></br>
                                           
                                                <h:message for="type" styleClass="error"/> <br></br>
                                            </div>

                                            <h:commandButton styleClass="btn btn-success" value="Kaydet" action="#{userTypeController.addUserType(userType)}">
                                            </h:commandButton>


                                        </h:form>
                                    </div>
                                </div>

                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </main>

    </ui:define>
</ui:composition>
 

Можно снова войти в систему, чтобы перейти на страницу. Вот моя страница входа

 <?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:h="http://xmlns.jcp.org/jsf/html"
                xmlns:f="http://xmlns.jcp.org/jsf/core"
                template="/template/site.xhtml"
                xmlns:a="http://xmlns.jcp.org/jsf/passthrough"
                xmlns:ui="http://xmlns.jcp.org/jsf/facelets">



    <ui:define name="content">
        <main class="d-flex w-100">
            <div class="container d-flex flex-column">
                <div class="row vh-100">
                    <div class="col-sm-10 col-md-8 col-lg-6 mx-auto d-table h-100">
                        <div class="d-table-cell align-middle">
                            <div class="text-center mt-4">
                                <h1 class="h2">Giriş Yap</h1>

                            </div>
                            <div class="card">
                                <div class="card-body">
                                    <div class="m-sm-4">


                                        <h:form> 
                                            <style>
                                                .error{color:red}  
                                            </style>

                                            <div class="form-group">
                                                <label for="inputEmail4">Kullanıcı Adı</label>
                                                <h:inputText class="form-control" value="#{user_bean.username}" 
                                                             id="username"
                                                             required="true"
                                                             requiredMessage="Kullanıcı türü adı boş olamaz!"
                                                             >
                                                  
                                                </h:inputText>

                                                <h:message for="username" styleClass="error"/> <br></br>
                                            </div>
                                            
                                                                                        <div class="form-group">
                                                <label for="inputEmail4">Şifre</label>
                                                <h:inputText class="form-control" value="#{user_bean.password}" 
                                                             id="password"
                                                             required="true"
                                                             requiredMessage="Kullanıcı türü adı boş olamaz!"
                                                             >
                                                  
                                                </h:inputText>

                                                <h:message for="password" styleClass="error"/> <br></br>
                                            </div>

 <h:commandButton styleClass="btn btn-success" value="Login" action="#{userController.doLogin(user_bean)}"/>
 <br></br><h:outputLabel value="#{userController.loginError}" rendered="true" style="color:red"/>



                                        </h:form>
                                    </div>
                                </div>

                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </main>

    </ui:define>
</ui:composition>
 

If i can do that, they will let me use Spring framework and it will be like heaven for me. If you have any ideas, please share it with me.