前提・実現したいこと
ログインページから習得したユーザ名とパスワードを使用して認証を行い、認証成功後ウェルカムページにアクセスします。
このウェルカムページには認証済みユーザのみアクセスできるようにしたいです。(未認証ユーザが直接URLで来た場合はログインページへリダイレクトさせたい)
JavaEE初心者過ぎて、さっぱりわかりません。
ログイン画面にて表示されるユーザ名に@NotNull
をつければいいかと思いましたが違いました
また、認証処理が独自かつ、web.xmlのログイン構成は管理者用のログイン構成をbasicで使用しており、使用できません。
該当のソースコード
index.html
html
1<?xml version='1.0' encoding='UTF-8' ?> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 3<html xmlns="http://www.w3.org/1999/xhtml" 4 xmlns:h="http://xmlns.jcp.org/jsf/html"> 5 <h:head> 6 <title>ログインページ</title> 7 </h:head> 8 <h:body> 9 <h:form id="loginForm"> 10 <table> 11 <tr> 12 <td><h:outputText value="ユーザ名" /></td> 13 <td> 14 <h:inputText id="username" value="#{authentication.username}"/> 15 </td> 16 </tr> 17 <tr> 18 <td><h:outputText value="パスワード" /></td> 19 <td> 20 <h:inputSecret id="password" value="#{authentication.password}" /> 21 </td> 22 </tr> 23 </table> 24 <br/> 25 <h:commandButton id="changePasswordButton" 26 value="ログイン" 27 action="#{authentication.auth()}"/> 28 </h:form> 29 </h:body> 30</html>
Authentication.java
java
1import java.io.Serializable; 2import javax.enterprise.context.SessionScoped; 3import javax.inject.Named; 4 5@Named 6@SessionScoped 7public class Authentication implements Serializable { 8 9 private String username; 10 private String password; 11 12 public String getUsername() { 13 return username; 14 } 15 16 public void setUsername(String username) { 17 this.username = username; 18 } 19 20 public String getPassword() { 21 return password; 22 } 23 24 public void setPassword(String password) { 25 this.password = password; 26 } 27 28 public String auth() { 29 try { 30 // 認証処理(独自) 31 return "/welcome.xhtml?faces-redirect=true"; 32 } catch (Exception e) { 33 return null; 34 } 35 } 36};
welcome.xhtml
html
1<?xml version='1.0' encoding='UTF-8' ?> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 3<html xmlns="http://www.w3.org/1999/xhtml" 4 xmlns:h="http://xmlns.jcp.org/jsf/html"> 5 <h:head> 6 <title>Facelet Title</title> 7 </h:head> 8 <h:body> 9 ようこそ 10 <h:outputText value="#{authentication.username}" /> 11 さん 12 </h:body> 13</html>
試したこと
@NotNull
:インプット時のバリデーションのため無意味?付けてみてもバリデーションも有効化されていなさそうでした。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。