0

私の Web アプリケーションには、別のアプリケーションから http パラメータを取得する認証メソッドがあります。データベースからユーザーをロードし、Spring Bean に保存します。私のログインコントローラーではインスタンス化されていますが、別のコントローラーに挿入すると、そのプロパティが失われ、ユーザーに到達したいときに「null」になります。Bean のプロパティを他のすべてのコントローラーで使用できるようにするにはどうすればよいですか? 静的プロパティを使用したくありません... Bean を「セッション スコープ」にしようとしましたが、機能しません。

suerBean:

    @Service
@SessionScoped
public class SessionUserBean {

    public Dolgozo user;

    public Boolean userIsDolgozo;
    public Boolean userIsIranyito;
    public Boolean userIsVezeto;
    public Boolean userIsOsztalyVezeto;


    public void setUser(Dolgozo user) {
        this.user = user;
    }

    public Dolgozo getUser() {
        return user;
    }
}

ユーザー プロパティの値を設定します。

@Autowired
    private SessionUser sessionUser;
    @Autowired
    private SessionUserBean user;

    @Autowired
    private HttpServletRequest request;

    @RequestMapping("index.htm")
    public String doLogin(@RequestParam String token) {


        if (login.isUserAuthanticated(token)) {

            user.setUser(sessionUser.getDolgozo()); 

            return "sikeresBelepes";
        }

        return "sikertelenBelepes";
    }

そして、これは私がそれを使いたい場所です:

@Autowired
    private SessionUserBean user;

    public void setUp() {
        employees = drp.findByCsoportID(user.getUser().getCsoportid().getId());
    }
4

1 に答える 1

0

なんて混乱!

Spring Securityを使用しないのはなぜですか? 一連のフィルターを設定することにより、セキュリティ コンテキストを自動的に管理します。また、アプリのどこからでもユーザー情報にアクセスできます。

いいえの場合は、コードのどこかにセッションでユーザーを設定する必要があります。自動配線することはできません。このような:

@RequestMapping("index.htm")
public String doLogin(@RequestParam String token) {
    if (login.isUserAuthanticated(token)) {
        user.setUser(sessionUser.getDolgozo()); 
        return "sikeresBelepes";

       session.addAttribute("securityUser", user);
    }

    return "sikertelenBelepes";
}

そして、セッションからそれを取得しますgetAttribute()

于 2013-03-03T10:20:26.170 に答える