Прежде всего, я хочу извиниться за мой плохой английский. Хорошо, у меня проблема. Я создаю приложение, которое использует jdbcrealm и web.xml для обеспечения безопасности. Вход осуществляется через веб-форму. Приложение работает на Apache Tomcat 7, и я использую Primefaces 4.0. В web.xml я определил некоторые роли и некоторые ограничения безопасности. Когда я вхожу в приложение httpservlet request.login (имя пользователя, пароль), выполняйте работу отлично, а request.isUserInrole («role») также выполняет работу, Faces.getExternalContext.redirect перенаправляет страницу для исправления папки, на которой применяется ограничение безопасности , в браузере я вижу правильный URL ..... но страница Blank !!! Если я проверяю источник страницы, я вижу страницу источника страницы входа ... Я поставлю несколько скриншотов ниже. Пожалуйста, помогите мне ... Я пытаюсь решить проблему уже 2 недели!Проблемы с web.xml
/*
*/ это web.xml
<param-name>primefaces.THEME</param-name>
<param-value>afterdark</param-value>
</context-param>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
<security-role>
<description>Administrator A</description>
<role-name>1</role-name>
</security-role>
<security-constraint>
<display-name>Administrator A</display-name>
<web-resource-collection>
<web-resource-name>Administratorske datoteke</web-resource-name>
<description/>
<url-pattern>/a1/*</url-pattern> -->
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<description>Administrator A</description>
<role-name>1</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<realm-name>JDBCRealm</realm-name>
<form-login-config>
<form-login-page>/prijava.xhtml</form-login-page>
<form-error-page>/pogreska.xhtml</form-error-page>
</form-login-config>
</login-config>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>prijava.xhtml</welcome-file>
</welcome-file-list>
* это войти в страницу (prijava.xhtml) *
<div class="slika_za_prijavu">
<h:outputLink id="loginLink" value="javascript:void(0)" onclick="PF('prozor_za_unos').show()" title="prijava">
<p:graphicImage value="/slike/prijava.png" />
</h:outputLink>
</div>
<p:growl id="growl" showDetail="true" life="3000" />
<p:dialog id="prozor_za_prijavu" header="Prijava" widgetVar="prozor_za_unos" resizable="false">
<h:panelGrid columns="2" cellpadding="5">
<h:outputLabel for="k_ime" value="Korisničko ime:" />
<p:inputText value="#{provjera_prijave.k_ime}"
id="k_ime" required="true" label="korisnicko_ime"
requiredMessage="Potrebno je upisati korisničko ime!"/>
<h:outputLabel for="zaporka" value="Zaporka:" />
<h:inputSecret value="#{provjera_prijave.zaporka}"
id="zaporka" required="true" label="zaporka"
requiredMessage="Potrebno je upisati zaporku!"/>
<f:facet name="footer">
<p:commandButton id="gumb_za_prijavu" value="Prijavi se" update="growl"
actionListener="#{provjera_prijave.prijava(actionEvent)}"
oncomplete="obrada_zahtjeva_za_prijavu(xhr, status, args)"/>
</f:facet>
</h:panelGrid>
</p:dialog>
</h:form>
это войти в контроллер (provjera_prijave)
общественного недействительными prijava (ActionEvent ActionEvent) бросает IOException {
FacesMessage poruka = null;
FacesContext fc = FacesContext.getCurrentInstance();
HttpServletRequest zahtjev = (HttpServletRequest) fc.getExternalContext().getRequest();
try {
String pocetna_stranica;
zahtjev.login(k_ime, zaporka);
HttpSession sesija = zahtjev.getSession();
if (!sesija.isNew()) {
sesija.invalidate();
sesija = zahtjev.getSession();
}
if (zahtjev.isUserInRole("1")) {
sesija.setAttribute("trenutni_korisnik",k_ime);
pocetna_stranica = "/a1/pocetna_a1.xhtml";
poruka = new FacesMessage(FacesMessage.SEVERITY_INFO, "Dobro došao", k_ime);
try {
fc.getExternalContext().getFlash().setKeepMessages(true);
fc.getExternalContext().redirect(zahtjev.getContextPath()+pocetna_stranica);
}
catch (IOException ex) {
fc.addMessage(null, new FacesMessage("UPOZORENJE!", "Pogreška u izvođenju programa. Nije moguće preusmjeriti stranicu."));
}
}
else if (zahtjev.isUserInRole("2")) {
и это гиперссылка, которая находится в моем браузер, когда пользователь с ролью «1» войдет в систему. До этого идет localhost и порт ... ERMP - это приложение n ...
"ERMP/a1/pocetna_a1.xhtml"
здесь пустая страница с источником страницы на страницу входа
Я надеюсь, что вопрос понятен. Когда комментарий веб-ресурс в web.xml все работает Пожалуйста, помогите !! Спасибо
Спасибо! Мне удалось найти нужную страницу, что является улучшением, но я могу сделать это только с одним пользователем ... если я определяю страницу приветствия для пользователя с ролью «1», я могу видеть страницу, но пользователь с ролью «2» не видит page .... знаете ли вы, как определить несколько страниц приветствия в web.xml? – nikolabu