2016-05-03 11 views
0

https://github.com/WASdev/sample.batch.sleepybatchlet私は上記のgitサンプルを実行しようとしています自由

で展開RESTサービスを使用してのMavenのJavaバッチを呼び出すことができません。 私は自由にAntビルドJavaバッチプロジェクトを設定して実行することができました。 しかし、それがmavenプロジェクトになると、 私はジョブを制御するために休憩サービスを使用することができませんでした.i defaultKeyStoreを使用したユーザー認証の問題に関する問題があります。 上記のmavenプロジェクトにserver.xmlがありますが、キーストアのパスワードを作成できませんでした。 「自由なランタイムが見つかりませんでした」と表示されます。私は、同じユーザーに対して、「batchadmin」としてbasicRegistry とのsecurity-roleに一人のユーザーを使用している 自由のserver.xmlの

サーバーを渡すためにプロジェクト内のserver.xmlで何をすべきか、変更

認証。

+0

詳細を入力できますか? server.xmlのコピー、実行している正確なコマンド、および対応するエラーコマンド?あなたが知っているサンプル自体には、テストを実行したり、WARをLibertyにデプロイするMaven自動化は含まれていないので、何をしようとしているのか正確には分かりません。 –

+0

また、セキュリティをどのように設定しているのか分かりませんが、変更を行っている場合は、** /resources/security/key.jks**を削除して、再起動時にサーバを再生成させてみてください。 –

+0

\t <ユーザー名= "ボブ" パスワード= "bobpwd" /> \t \t <ユーザー名= "USER1" パスワード= "user1pwd" /> \t \t <ユーザー名=「user2が」パスワード=「user2pwd」/> PremStephenIrudayaraj

答えて

0

バッチロールベースの認証が設定されているときにサーブレットからバッチ操作を実行するには、UNAUTHENTICATEDではなく、特定のユーザーで実行するようにサーブレットに認証チャレンジを追加する必要があります。

あなたはこのようなサンプルにこれを追加することができます:ユーザー・レジストリーとユーザーを定義し、それらをあなたが参照するドキュメントのようにバッチ役割へのアクセスを許可に加えてい

import javax.servlet.annotation.HttpConstraint; 
import javax.servlet.annotation.HttpMethodConstraint; 
import javax.servlet.annotation.ServletSecurity; 
import javax.servlet.annotation.WebServlet; 

// ... 
@ServletSecurity(value = @HttpConstraint(transportGuarantee = ServletSecurity.TransportGuarantee.CONFIDENTIAL), 
    httpMethodConstraints = { @HttpMethodConstraint(value = "POST", emptyRoleSemantic = ServletSecurity.EmptyRoleSemantic.PERMIT), 
           @HttpMethodConstraint(value = "GET", emptyRoleSemantic = ServletSecurity.EmptyRoleSemantic.PERMIT), 
           @HttpMethodConstraint(value = "PUT", emptyRoleSemantic = ServletSecurity.EmptyRoleSemantic.PERMIT) }) 
@WebServlet(urlPatterns = { "/joboperator" }) 
public class JobOperatorServlet extends HttpServlet { 

、ここで

<httpEndpoint httpPort="9080" httpsPort="9443" id="defaultHttpEndpoint"/> 

<keyStore id="defaultKeyStore" password="Liberty"/> 

<basicRegistry id="basic" realm="ibm/api"> 
    <user name="bob" password="bobpwd"/> 
    <user name="jane" password="janepwd"/> 
</basicRegistry> 

<authorization-roles id="com.ibm.ws.batch"> 
    <security-role name="batchSubmitter"> 
     <user name="bob"/> 
    </security-role> 
    <security-role name="batchAdmin"> 
     <user name="jane"/> 
    </security-role> 
</authorization-roles> 

さて、あなたは絵にバッチセキュリティを持っていますつまり、バッチのセキュリティを、設定するのですかの独立したが、関連する質問があります:それの抜粋です。しかし、私はフォローアップの質問のためにそれを残し、それが存在することをここでは当然と考えています。

+0

リバティーのserver.xmlに正確な設定を指定しました。しかし、私がMavenビルドwarファイルをdropinsディレクトリの中に置き、サーバーを起動すると、残りのリンクを使用してジョブを開始できません。 「UNAUTHUNTICATEDユーザーがジョブを開始する権限を持っていません」というメッセージが表示されます。 – PremStephenIrudayaraj

+0

「私はバッチセキュリティが有効になっているので、サーブレットをどのように機能させるのですか?ただし、バッチ・セキュリティを使用して実行する必要がある場合は、RESTインタフェースとツールを試してみてくださいこれらのセキュリティの詳細をこの段階で心配する必要はありませんが、それは確かにオプションです。それが本当に必要なものなら、別の質問を開いて、私はそれに答えます。 –

+0

thanks scott.Butサーブレットとserver.xmlの両方で上記の設定を指定していますが、「UNAUTHENTICATEDはバッチジョブを開始する権限がありません」というメッセージが表示されます。つまり、ユーザーを取得していないということです私は指定しました – PremStephenIrudayaraj

関連する問題