How to allow nonroot user to bind to port 80

We are making some changes, and are now using Weblogic as the webserver on one of my projects. I would like for the non root user running Weblogic to be able to bind to port 80.

sudo is the standard answer for stuff like that.

That defeats the purpose as I do not want the webserver running as root.

Even using root to launch the webserver the process will run as the user defined in the configuration file, if your webserver is correctly configured.

Apache is good about binding to port 80 then dropping privs, weblogic isn't so smart afaik.

Best bet might be to have apache bind to 80, then redirect to weblogic on a port > 1024.

Good luck.

What version of weblogic?

It is 8.1 SP2

There may be an an option for you, but I hesitate to mention it. I found it because I am writing a script to manipulate the Solaris network drivers. I can't find any real documentation on it either. But the tcp driver has some tunable parameters that are accessible via ndd. The params you would need to look at can be found with:
# ndd -get /dev/tcp \? | grep priv
tcp_smallest_nonpriv_port (read and write)
tcp_extra_priv_ports (read only)
tcp_extra_priv_ports_add (write only)
tcp_extra_priv_ports_del (write only)

So you might be able to crank tcp_smallest_nonpriv_port down to 80. This also exposes 81 though 1024. You might be able to put some or all of these back with the other params. If you do try it, let us know how it goes.

It would probably be easier to relay 80 to an unpriveleged port, using, for example, ipfilters.

Look into the Post-Bind UID option in weblogic.

check out jsvc. I use it to run tomcat as a different user after it binds to port 80. Daemon – Daemon : Java Service