PHP希望$ _SERVER中的Shibboleth属性,但它们只在Provider的HTTP响应头中

时间:2010-10-18 10:38:28

标签: php attributes shibboleth

据我了解,有两种方法可以获得Shibboleth属性:

  • 它们可以在$ _SERVER或
  • 上使用
  • 在HTTP标头响应中(提供者)

在后一种情况下,如何将它们提供给应用程序?即使我抓住它们并尝试使用putenv()在服务器环境中注入它们,它也只会持续当前请求的持续时间。我可以在会话中加载它们,但它感觉不对。

1 个答案:

答案 0 :(得分:1)

如果他们进入服务器的环境,那么每个用户的值都会在每次请求时覆盖其他所有人的值。这就是存储每个用户持久数据的会话的原因。当然,您可以让服务器重新注入每个请求,只针对该特定请求的子/线程环境,但除非值每次都在更改,为什么不将它们放在会话中以开始?

同样,在多工作环境(如Apache的pre-fork)中,除非您以某种方式将变量注入父进程(以root身份运行的进程),否则您只能影响一个子进程。无法保证下一个请求将由同一个孩子处理。甚至更好的是,即使你注入了父根标记的进程,孩子也不会继承那个新的环境,直到他们自然关闭并且根父母要求一个新的孩子。