package org.beanfuse.security.ui; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import javax.servlet.http.HttpServletRequest; import org.beanfuse.security.UserDetails; import org.springframework.util.Assert; import org.springframework.util.ReflectionUtils; public class WebUserDetailsSource implements UserDetailsSource { private Class clazz = WebUserDetails.class; public UserDetails buildDetails(Object context) { Assert.isInstanceOf(HttpServletRequest.class, context); try { Constructor constructor = clazz .getConstructor(new Class[] { HttpServletRequest.class }); return (UserDetails) constructor.newInstance(new Object[] { context }); } catch (NoSuchMethodException ex) { ReflectionUtils.handleReflectionException(ex); } catch (InvocationTargetException ex) { ReflectionUtils.handleReflectionException(ex); } catch (InstantiationException ex) { ReflectionUtils.handleReflectionException(ex); } catch (IllegalAccessException ex) { ReflectionUtils.handleReflectionException(ex); } return null; } public void setClazz(Class clazz) { Assert.notNull(clazz, "Class required"); this.clazz = clazz; } }