4

私は JBoss-7 環境で RestEasy を使用しており、現在セキュリティ機能を実装しています。SSL 接続で HTTP Basic を使用しています。ヘッダー パラメーターの追加と評価は簡単です ( Passing parameters in the message header with a REST API のおかげです)。

@Provider @ServerInterceptor
public class RestSecurityInterceptor implements PreProcessInterceptor
{
  @EJB MyBean fUser;
  private MyUser user;  

  @Override
  public ServerResponse preProcess(HttpRequest request, ResourceMethod method)
                                                     throws UnauthorizedException
  {
     // do some some stuff. If the request is authenticated I get a MyUser      
    user = ...
  }

  @Named @Produces @SessionScoped
  public MyUser getCurrentUser() {return user;}
}

これは正常に機能し、REST サービスの@Producesとも魅力のように機能します。@Inject

@Path("/rest")
public class MyService extends Application
{
  @Inject private MyUser currentUser;

  @GET @Path("/test")
  public String test()
  {
    return "Hello "+currentUser.getName();
  }
}

ここで私の質問:この方法で REST のセキュリティを実装しても安全ですか (HTTP Basic の賛否両論については議論したくありません。CDI に焦点を当てましょう)。特に、説明したようにCDIを使用できるかどうか、および適切なスコープを選択したかどうか疑問に思ってい@SessionScopedます?

4

1 に答える 1

0

セッションスコープは機能しません。RESTとセッションスコープについてはすでにいくつか質問があります。セッションスコープは、JAX-RSまたはJAX-WS呼び出しに対してアクティブではありません。

于 2012-05-06T04:47:18.093 に答える