ログインサービス
ここでは、ユーザーIDとパスワードを渡し、成功か否かを結果として返す簡単なサンプルを紹介します(実際のプロジェクトでは、ここに認証のロジックをコーディングしてください。また、暗号化などにも考慮してください)。以下は、ログインサービスとユーザー情報のサンプルです。
package sample; import javax.annotation.Resource; import org.springframework.stereotype.Service; import com.curlap.orb.security.RemoteService; /* ログインサービス */ @RemoteService @Service("login") public class LoginService { @Resource private UserInfo userInfo; /* ログインメソッド */ public boolean login(String userId, String password) { if (userId.equals("user01") && password.equals("pass")) { userInfo.setUserId(userId); userInfo.setHasLogined(true); //trueをセット return userInfo.isHasLogined(); } return false; } }
package sample; import java.io.Serializable; /* ユーザー情報 */ public class UserInfo implements Serializable{ private static final long serialVersionUID = 1L; private String userId; private boolean hasLogined; public String getUserId() { return userId; } public void setUserId(String userId) { this.userId = userId; } public boolean isHasLogined() { return hasLogined; } public void setHasLogined(boolean hasLogined) { this.hasLogined = hasLogined; } }
このサンプルの認証ロジックは、単純にユーザーID:user01、パスワード:passであればtrueを返すものとなっています。ログインに成功した場合、LoginServiceのフィールドであるUserInfoのhasLoginedにtrueをセットします。また、このUserInfoはセッションごとに作成されるようにするため、Springの設定ファイル(applicationContext.xml)に以下の行を追加し、スコープをsessionとして管理できるようにします。
<bean id="userInfo" class="sample.UserInfo" scope="session"> <aop:scoped-proxy/> </bean>