我对 Waffle 和 Kerberos 有以下问题。
我有可以在 Tomcat 上运行的 Java Servlet 应用程序,并且在我使用 waffle 的 Kerberos 上有 SSO。
为了使 SSO 工作,我必须启用:
<init-param>
<param-name>impersonate</param-name>
<param-value>true</param-value>
</init-param>
当我将 impersonate 设置为 false 时,SSO 不起作用:(
一切似乎都很好,用户可以使用 SSO 登录我的应用程序。
但后来我发现模拟更改 tomcat 用户和应用程序不是在管理权限下工作,而是作为 userA 或 userB。因此,当用户 A 在我的系统中创建文件(报告、日志、配置文件)时,他是文件的所有者,然后当用户 B 登录并尝试访问该文件时,我得到拒绝访问异常。
我使用以下代码创建文件:
File file = new File(fileName);
file.createNewFile();
file.setExecutable(true, false);
file.setReadable(true, false);
file.setWritable(true, false);
我希望应用程序在不更改用户的情况下工作,它应该是 tomcat 用户创建、读取和附加文件(管理员)而不是 userA 或 userB。
我需要带有华夫饼的 Kerberos SSO,但我不希望这种模拟以这种方式工作。有没有其他方法可以让华夫饼起作用?或者也许我可以以任何其他方式保存文件?