Hi, there,
I am playing with the latest 7.0.2 and the single sign on part is not working
correctly. And I debugged the problem and found the sso member variable is
always null in AuthenticatorBase class. Here is the clip of code in this class
I found it may have a problem. This code tries to find the singlesignon valve
through all ancestor container, but all the container don't implement Pipeline
interface. And the pipeline is member variable of ContainerBase. I don't know
if this is a bug or I didn't configure my server.xml correctly. It seems to me
sso will never get set if I use standardEngine or standardHost.
protected synchronized void startInternal() throws LifecycleException {
// Look up the SingleSignOn implementation in our request processing
// path, if there is one
Container parent = context.getParent();
while ((sso == null) && (parent != null)) {
if (!(parent instanceof Pipeline)) {
parent = parent.getParent();
continue;
}
Valve valves[] = ((Pipeline) parent).getValves();
for (int i = 0; i < valves.length; i++) {
if (valves[i] instanceof SingleSignOn) {
sso = (SingleSignOn) valves[i];
break;
}
}
if (sso == null)
parent = parent.getParent();
}
......
Thanks for looking at this issue.
Ming