use of org.apache.tapestry5.services.Session in project tapestry-5 by apache.
the class SSOEntity method getPersistedEntityClassName.
public String getPersistedEntityClassName() {
final Session session = request.getSession(true);
final Object value = session.getAttribute("sso:" + User.class.getName());
return value.getClass().getName();
}
use of org.apache.tapestry5.services.Session in project tapestry-5 by apache.
the class SSOEntity method getPersistedEntityClassName.
public String getPersistedEntityClassName() {
final Session session = request.getSession(true);
final Object value = session.getAttribute("sso:" + User.class.getName());
return value.getClass().getName();
}
use of org.apache.tapestry5.services.Session in project tapestry-5 by apache.
the class KaptchaImage method onImage.
Object onImage() throws IOException {
if (captchaText == null) {
return new HttpError(HttpServletResponse.SC_NOT_FOUND, "Session expired.");
}
return new StreamResponse() {
@Override
public String getContentType() {
return "image/jpeg";
}
@Override
public InputStream getStream() throws IOException {
BufferedImage image = producer.createImage(captchaText);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(image, "jpg", baos);
return new ByteArrayInputStream(baos.toByteArray());
}
@Override
public void prepareResponse(Response response) {
response.setDateHeader("Expires", 0);
// Set standard HTTP/1.1 no-cache headers.
response.addHeader("Cache-Control", "no-store, no-cache, must-revalidate");
// Set IE extended HTTP/1.1 no-cache headers (use addHeader).
response.addHeader("Cache-Control", "post-check=0, pre-check=0");
// Set standard HTTP/1.0 no-cache header.
response.setHeader("Pragma", "no-cache");
}
};
}
use of org.apache.tapestry5.services.Session in project tapestry-5 by apache.
the class ExceptionReportWriterImpl method writeReport.
@Override
public void writeReport(final PrintWriter writer, ExceptionAnalysis analysis) {
writer.printf("EXCEPTION STACK:%n%n");
// Figure out what all the property names are so that we can set the width of the column that lists
// property names.
Flow<String> propertyNames = F.flow(analysis.getExceptionInfos()).mapcat(EXCEPTION_INFO_TO_PROPERTY_NAMES).append("Exception", "Message");
PropertyWriter pw = newPropertyWriter(writer, propertyNames);
boolean first = true;
for (ExceptionInfo info : analysis.getExceptionInfos()) {
if (first) {
writer.println();
first = false;
}
pw.write("Exception", info.getClassName());
pw.write("Message", info.getMessage());
for (String name : info.getPropertyNames()) {
pw.write(name, info.getProperty(name));
}
if (!info.getStackTrace().isEmpty()) {
writer.printf("%n Stack trace:%n%n");
for (StackTraceElement e : info.getStackTrace()) {
writer.printf(" - %s%n", e.toString());
}
}
writer.println();
}
Request request = requestGlobals.getRequest();
if (request != null) {
// New PropertyWriter based on the lengths of parameter names and header names, and a sample of
// the literal keys.
pw = newPropertyWriter(writer, F.flow(request.getParameterNames()).concat(request.getHeaderNames()).append("serverName", "removeHost"));
writer.printf("REQUEST:%n%nBasic Information:%n%n");
List<String> flags = CollectionFactory.newList();
if (request.isXHR()) {
flags.add("XHR");
}
if (request.isRequestedSessionIdValid()) {
flags.add("requestedSessionIdValid");
}
if (request.isSecure()) {
flags.add("secure");
}
pw.write("contextPath", contextPath);
if (!flags.isEmpty()) {
pw.write("flags", InternalUtils.joinSorted(flags));
}
pw.write("method", request.getMethod());
pw.write("path", request.getPath());
pw.write("locale", request.getLocale());
pw.write("serverName", request.getServerName());
pw.write("remoteHost", request.getRemoteHost());
writer.printf("%nHeaders:%n%n");
for (String name : request.getHeaderNames()) {
pw.write(name, request.getHeader(name));
}
if (!request.getParameterNames().isEmpty()) {
writer.printf("%nParameters:%n");
for (String name : request.getParameterNames()) {
// TODO: Support multi-value parameters
pw.write(name, request.getParameters(name));
}
}
Session session = request.getSession(false);
if (session != null) {
pw = newPropertyWriter(writer, session.getAttributeNames());
writer.printf("%nSESSION:%n%n");
for (String name : session.getAttributeNames()) {
pw.write(name, session.getAttribute(name));
}
}
}
writer.printf("%nSYSTEM INFORMATION:");
Runtime runtime = Runtime.getRuntime();
writer.printf("%n%nMemory:%n %,15d bytes free%n %,15d bytes total%n %,15d bytes max%n", runtime.freeMemory(), runtime.totalMemory(), runtime.maxMemory());
Thread[] threads = TapestryInternalUtils.getAllThreads();
int maxThreadNameLength = 0;
for (Thread t : threads) {
maxThreadNameLength = Math.max(maxThreadNameLength, t.getName().length());
}
String format = "%n%s %" + maxThreadNameLength + "s %s";
writer.printf("%n%,d Threads:", threads.length);
for (Thread t : threads) {
writer.printf(format, Thread.currentThread() == t ? "*" : " ", t.getName(), t.getState().name());
if (t.isDaemon()) {
writer.write(", daemon");
}
if (!t.isAlive()) {
writer.write(", NOT alive");
}
if (t.isInterrupted()) {
writer.write(", interrupted");
}
if (t.getPriority() != Thread.NORM_PRIORITY) {
writer.printf(", priority %d", t.getPriority());
}
}
// Finish the final line.
writer.println();
}
use of org.apache.tapestry5.services.Session in project tapestry-5 by apache.
the class SessionApplicationStatePersistenceStrategy method getOrCreate.
protected <T> Object getOrCreate(Class<T> ssoClass, ApplicationStateCreator<T> creator) {
Session session = getSession();
String key = buildKey(ssoClass);
Object sso = session.getAttribute(key);
if (sso == null) {
sso = creator.create();
set(ssoClass, (T) sso);
}
return sso;
}
Aggregations