首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Waffle Kerberos SSO -模拟更改tomcat用户

Waffle Kerberos SSO -模拟更改tomcat用户
EN

Stack Overflow用户
提问于 2016-09-28 15:32:05
回答 1查看 516关注 0票数 2

我对Waffle和Kerberos有以下问题。

我有一个Java Servlet应用程序,它在Tomcat上工作,在Kerberos上有SSO,为此我使用了waffle。

要使SSO工作,我必须启用:

代码语言:javascript
复制
  <init-param>
      <param-name>impersonate</param-name>
      <param-value>true</param-value>
  </init-param>

当我将impersonate设置为false时,SSO不起作用:(

一切似乎都很正常,用户可以使用SSO登录我的应用程序。

但是后来我发现impersonate更改了tomcat用户和应用程序,它们不是在管理权限下工作,而是以userA或userB身份工作。因此,当userA在我的系统中创建文件(报告、日志、配置文件)时,他是文件的所有者,然后当userB登录并尝试访问此文件时,我会收到访问被拒绝的异常。

我用以下代码创建文件:

代码语言:javascript
复制
File file = new File(fileName);
file.createNewFile();
file.setExecutable(true, false);
file.setReadable(true, false);
file.setWritable(true, false);

我想要的应用程序工作而不改变用户,它应该是猫用户创建,读取和附加文件(管理员)而不是userA或userB。

我需要Kerberos SSO with waffle,但我不希望这个模拟以这种方式工作。有没有其他方法可以让华夫饼工作?或者我可以用其他方式保存文件?

EN

回答 1

Stack Overflow用户

发布于 2016-09-28 21:56:31

好吧,我自己找到了一个解决方案。

使用impersonate时,我正在读取来自

代码语言:javascript
复制
serverContext.getIdentity().getFqn();

使用impersonate时,我读取了正确的登录用户,但是当我关闭impersonate时,我得到的是tomcat用户(NT AUTHORITY\SYSTEM),而不是登录的用户。

现在我正在读取user from

代码语言:javascript
复制
request.getUserPrincipal().getName();

在关闭模拟的情况下,这对我有效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39740848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档