ログインサービス
ここでは、ユーザー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>

