creating a web portal using J2EE

I'm planning to use J2EE to implement a web site that requires users to register or log in to their accounts before they can use the site. I tried implementing the login & registration methods myself, but came to realize that 1) this same code must have already been written many times, 2) creating good registration and method script isn't simple, since there are many special cases related to security. Here are a few of the special cases:

-IP addresses attempting to login should be recorded, and temporarily disabled following too many unsuccessful attempts.
-Usernames and passwords must be well-formed and able to withstand dictionary-based attacks.
-The rate of registrations from a single ip address must be limited.
-Ideally, a users would have to mirror the letters displayed in a jpeg in order to register for a new account.

If it matters, I was planning to use JBoss, MySQL, Apache, and Debian Linux.

QUESTION: How can I avoid having to write registration and login methods? Are there existing classes I can use, or are there entire frameworks that run on top of J2EE that provide registration/login functionality? How would a professional J2EE programmer build such a site?

Thank you very much!
bobwood2000Asked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

reginabCommented:
<QUESTION: How can I avoid having to write registration and login methods? Are there existing classes I can use, or are there entire frameworks that run on top of J2EE that provide registration/login functionality? How would a professional J2EE programmer build such a site? >

I would probably download jetspeed at least to use as a template to get you started.

of course the original objective of java was reuseable code so I think you are right not to exhaust yourself overly with recreating the wheel.

Start here I think:

http://portals.apache.org/
http://portals.apache.org/jetspeed-1/

and then here:
http://struts.apache.org/
0
petmagdyCommented:
Hi bobwood2000,

I worked before on Jakarta jetspeed:

http://portals.apache.org/jetspeed-1/

it has out of the box registration and Login, has also ready plugins for LDAP based or database authentication, i tried it before with OpenLDAP, privides encrypted passwords and work over any J2EE Server including JBOSS and I tried it on orion server, also it is very powerful portal framework and opensource , (IBM Websphere Portal is based on Jetspeed)
also take a look on the role based security features:

http://portals.apache.org/jetspeed-1/security.html

Cheers!
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
bobwood2000Author Commented:
Thanks Reginab & Petmagdy. Before I got your responses I didn't even realize that there was a whole class of software to implement j2ee web portals.

Now I'm trying to decide between using JetSpeed-2, Exo, and Liferay. All claim to be JSR-168 complaint, but perhaps some include more extensive API's or come bundled with more portlets. I probably don't need an especially extensive API, and while I might make use of some existing portlets, writing my own portlet will be of much greater importance. Which portal of these portals do you think would be best for me?

Thanks.
0
reginabCommented:
I think the jetspeed is pretty nice, and gives you good ideas for taking it other directions. things you can change and expand on,  it will also give you clear hierarchal guidance in the parent child relationships required in controlling your portals access to different things. which can be murky but I think is fine in jetspeed.  good luck.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Java EE

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.