Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jakarta ee javax.servlet.ServletException:UT010031:登录失败_Jakarta Ee_Wildfly_Jaas_Wildfly 10_Jdbcrealm - Fatal编程技术网

Jakarta ee javax.servlet.ServletException:UT010031:登录失败

Jakarta ee javax.servlet.ServletException:UT010031:登录失败,jakarta-ee,wildfly,jaas,wildfly-10,jdbcrealm,Jakarta Ee,Wildfly,Jaas,Wildfly 10,Jdbcrealm,我正试图使用JAAS编程安全性和WildFly 10和Postgres数据库构建一个JEE应用程序,但是我从未成功登录过,我总是会收到错误消息说**javax.servlet.ServletException:UT010031:login failed**,下面是我的代码: Postgres数据库表: CREATE TABLE users ( id bigint NOT NULL, pass character varying(255), role character varying

我正试图使用
JAAS
编程安全性和
WildFly 10
Postgres数据库构建一个
JEE
应用程序,但是我从未成功登录过,我总是会收到错误消息说
**javax.servlet.ServletException:UT010031:login failed**
,下面是我的代码:

Postgres
数据库表:

CREATE TABLE users
(
  id bigint NOT NULL,
  pass character varying(255),
  role character varying(255),
  username character varying(255),
  version bigint,
  CONSTRAINT users_pkey PRIMARY KEY (id)
)
数据表行内容:

287;"8D969EEF6ECAD3C29A3A629280E686CF0C3F5D5A86AFF3CA12020C923ADC6C92";"ADMIN";"administrator";1
web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <display-name>Karbonic</display-name>

    <servlet>
        <servlet-name>FacesServlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>FacesServlet</servlet-name>
        <url-pattern>*.xhtml</url-pattern>
    </servlet-mapping>

    <welcome-file-list>
        <welcome-file>/public/home.xhtml</welcome-file>
    </welcome-file-list>

    <login-config>
        <auth-method>FORM</auth-method>
        <realm-name>main-realm</realm-name>
        <form-login-config>
            <form-login-page>/public/login.xhtml</form-login-page>
            <form-error-page>/public/login.xhtml</form-error-page>
        </form-login-config>
    </login-config>

    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Administrator</web-resource-name>
            <url-pattern>/users/*</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>ADMIN</role-name>
        </auth-constraint>
    </security-constraint>

    <security-constraint>
        <web-resource-collection>
            <web-resource-name>User</web-resource-name>
            <url-pattern>/users/user/*</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>ADMIN</role-name>
            <role-name>ACCOUNTING</role-name>
            <role-name>REQUESTMANAGER</role-name>
        </auth-constraint>
    </security-constraint>

    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Accounting</web-resource-name>
            <url-pattern>/users/accounting/*</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>ACCOUNTING</role-name>
        </auth-constraint>
    </security-constraint>

    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Request Manager</web-resource-name>
            <url-pattern>/users/requestManager/*</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>REQUESTMANAGER</role-name>
        </auth-constraint>
    </security-constraint>

    <security-role>
        <role-name>REQUESTMANAGER</role-name>
    </security-role>

    <security-role>
        <role-name>ADMIN</role-name>
    </security-role>

    <security-role>
        <role-name>ACCOUNTING</role-name>
    </security-role>

</web-app>
我的
.xhtml
登录页面内容:

<h:form class="form-signin" a:method="post">
    <div class="row" style="margin-top: 100px;">
        <div class="col-md-4"></div>
        <div class="col-md-4"
            style="background-color: rgba(174, 174, 174, 0.09); box-shadow: 1px 1px 10px 1px;">

            <br /> <label class=""
                style="font-size: 200%; text-shadow: 1px 1px 1px #0fccc0;">KARBONIC</label><span
                class="glyphicon glyphicon-leaf"
                style="margin-left: 10px; font-size: 150%; color: #0fccc0; text-shadow: 1px 1px 1px black;"
                id="title-leaf" />

            <p>Please enter your credintials.</p>
            <hr />

            <h:outputLabel value="Username:" style="font-weight: 100;" />
            <!--                <h:inputText styleClass="form-control" a:name="j_username"> -->
            <h:inputText styleClass="form-control" value="#{loginBean.username}">
                <f:param name="username" value="123"></f:param>
            </h:inputText>
            <br />
            <h:outputLabel value="Password:" style="font-weight: 100;" />
            <!--                <h:inputSecret class="form-control" a:name="j_password"/> -->
            <h:inputSecret class="form-control" value="#{loginBean.password}" />

            <br />
            <h:commandButton class="btn btn-primary btn-block" value="login"
                type="submit" name="submit" action="#{loginBean.login()}">
                <f:ajax execute="@form" render="@form"></f:ajax>
            </h:commandButton>
            <br /> <span><h:messages errorStyle="color: red;" /></span>


        </div>
        <div class="col-md-4"></div>
    </div>
</h:form>

卡尔博尼奇
请输入您的credintials






因此,任何人都可以解决这个问题吗,请提前感谢。

堆栈跟踪还有其他问题吗?可能还有更深层的东西可以解释这个问题。
<jboss-web>
    <security-domain>main-realm</security-domain>
</jboss-web>
package org.master.jsf;

import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;

import org.master.ejb.LoginEJB;


@SessionScoped
@ManagedBean
public class LoginBean {

    @EJB
    private LoginEJB userEJB;

    private String username;
    private String password;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String login() {

        FacesContext context = FacesContext.getCurrentInstance();
        HttpServletRequest request = (HttpServletRequest) context.getExternalContext().getRequest();
        try {
            request.login(this.getUsername(), this.getPassword());
            userEJB.setUsername(username);
            userEJB.setPassword(password);
            return "/public/home.xhtml?faces-redirect=true";
        } catch (ServletException e) {
            e.printStackTrace();
            FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Incorrect username or password!", "");
            context.addMessage(null, msg);
        }
        return null;
    }

    public LoginEJB getUserEJB() {
        return userEJB;
    }

    public void setUserEJB(LoginEJB userEJB) {
        this.userEJB = userEJB;
    }

    public String doLogout() {
        FacesContext context = FacesContext.getCurrentInstance();
        HttpServletRequest request = (HttpServletRequest) context.getExternalContext().getRequest();

        try {
            request.logout();
        } catch (ServletException e) {
            e.printStackTrace();
        }
        return "/public/login.xhtml?faces-redirect=true";
    }

}
<h:form class="form-signin" a:method="post">
    <div class="row" style="margin-top: 100px;">
        <div class="col-md-4"></div>
        <div class="col-md-4"
            style="background-color: rgba(174, 174, 174, 0.09); box-shadow: 1px 1px 10px 1px;">

            <br /> <label class=""
                style="font-size: 200%; text-shadow: 1px 1px 1px #0fccc0;">KARBONIC</label><span
                class="glyphicon glyphicon-leaf"
                style="margin-left: 10px; font-size: 150%; color: #0fccc0; text-shadow: 1px 1px 1px black;"
                id="title-leaf" />

            <p>Please enter your credintials.</p>
            <hr />

            <h:outputLabel value="Username:" style="font-weight: 100;" />
            <!--                <h:inputText styleClass="form-control" a:name="j_username"> -->
            <h:inputText styleClass="form-control" value="#{loginBean.username}">
                <f:param name="username" value="123"></f:param>
            </h:inputText>
            <br />
            <h:outputLabel value="Password:" style="font-weight: 100;" />
            <!--                <h:inputSecret class="form-control" a:name="j_password"/> -->
            <h:inputSecret class="form-control" value="#{loginBean.password}" />

            <br />
            <h:commandButton class="btn btn-primary btn-block" value="login"
                type="submit" name="submit" action="#{loginBean.login()}">
                <f:ajax execute="@form" render="@form"></f:ajax>
            </h:commandButton>
            <br /> <span><h:messages errorStyle="color: red;" /></span>


        </div>
        <div class="col-md-4"></div>
    </div>
</h:form>