#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.