This error is rather generic and in most cases it needs to be troubleshot by setting the Tomcat log level to debug and determining what happens to the flow of commands received and sent to the Solaris machine.
However, there is one particular situation which will cause this problem: PAM uses to verify successful login to a UNIX box an echo command returning the last return code obtained upon log in to the system. This is usually
echo $?
and it should return just 0. If it does not, the log in sequence will be considered as faulty and PAM will consider it as erroneous.
This command is represented by the following entry in the Script Processor window under the UNIX application definition we use to log in to this server
<Please see attached file for image>

But unfortunately if the shell environment for the user using this application is /bin/csh, this command is not understood, and this will result in the verification failing.