2016-09-28 8 views
2

ワッフルとケルベロスに次の問題があります。Waffle Kerberos SSO - tomcatユーザーになりすまし

私はTomcatで動作し、waffleを使用しているKerberos上でSSOを持つJava Servletアプリケーションを持っています。

私はSSOが動作しません:(

をfalseに偽装し、すべてが正常に動作するようです

<init-param> 
     <param-name>impersonate</param-name> 
     <param-value>true</param-value> 
    </init-param> 

、ユーザーが自分のアプリケーションにログインすることができます

は、SSOは、私は有効にする必要がありました動作させるために、

しかし、tomcatユーザーとアプリケーションは管理権限ではなく、userAまたはuserBとして動作します。 したがって、userAがシステム(レポート、ログ、設定ファイル)にファイルを作成すると、ファイルの所有者その後、userBにログインしてこのファイルにアクセスしようとすると、Access denied Exceptionが発生します。

は、私は次のコードを使用してファイルを作成します。

File file = new File(fileName); 
file.createNewFile(); 
file.setExecutable(true, false); 
file.setReadable(true, false); 
file.setWritable(true, false); 

は、私は、アプリケーションの仕事をしたいユーザーを変更せずに、それはTomcatのユーザーは、作成ファイル(管理者)ではないユーザAまたはユーザーBを読んで、追加すべきです。

私はワッフルでKerberos SSOが必要ですが、この偽装がこのように動作することは望ましくありません。 ワッフルを作る他の方法はありますか?あるいは、他の方法でファイルを保存することはできますか?

答えて

0

私は解決策を見つけました。代わりに、ログインしたユーザーの偽装で

serverContext.getIdentity().getFqn(); 

から私がログインしているユーザーを読んでいた偽装で

は、私はそこにログインして、正しいユーザーを読んで私がオフに偽装なったとき、私はここにTomcatのユーザー(NT AUTHORITY \システム)を取得します。今、私は偽装で

request.getUserPrincipal().getName(); 

からユーザーを読んでいる

はオフになって、これは私のために動作します。

関連する問題