Example usage for org.springframework.web.context.request RequestContextHolder currentRequestAttributes

List of usage examples for org.springframework.web.context.request RequestContextHolder currentRequestAttributes

Introduction

In this page you can find the example usage for org.springframework.web.context.request RequestContextHolder currentRequestAttributes.

Prototype

public static RequestAttributes currentRequestAttributes() throws IllegalStateException 

Source Link

Document

Return the RequestAttributes currently bound to the thread.

Usage

From source file:org.onebusaway.admin.service.bundle.api.BuildResource.java

@Path("create")
@POST/*  ww  w  . j  a  v  a2  s.c o m*/
@Produces("application/json")
public Response build(@FormParam("bundleDirectory") String bundleDirectory,
        @FormParam("bundleName") String bundleName, @FormParam("email") String email,
        @FormParam("bundleStartDate") String bundleStartDate, @FormParam("bundleEndDate") String bundleEndDate,
        @FormParam("bundleComment") String bundleComment, @FormParam("archive") boolean archiveFlag,
        @FormParam("consolidate") boolean consolidateFlag, @FormParam("predate") boolean predateFlag) {
    Response response = null;
    directoryName = bundleDirectory;
    this.bundleName = bundleName;
    startDate = bundleStartDate;
    endDate = bundleEndDate;
    emailTo = email;
    comment = bundleComment;
    archive = archiveFlag;
    consolidate = consolidateFlag;
    predate = predateFlag;

    if (!isAuthorized()) {
        return Response.noContent().build();
    }

    BundleBuildResponse buildResponse = null;

    try {
        validateDates(bundleStartDate, bundleEndDate);
    } catch (DateValidationException e) {
        try {
            buildResponse = new BundleBuildResponse();
            buildResponse.setException(e);
            response = constructResponse(buildResponse);
        } catch (Exception any) {
            _log.error("exception in build:", any);
            response = Response.serverError().build();
        }
    }

    //Proceed only if date validation passes
    if (response == null) {
        BundleBuildRequest buildRequest = new BundleBuildRequest();
        buildRequest.setBundleDirectory(bundleDirectory);
        buildRequest.setBundleName(bundleName);
        buildRequest.setEmailAddress(email);
        buildRequest.setBundleStartDate(bundleStartDate);
        buildRequest.setBundleEndDate(bundleEndDate);
        buildRequest.setBundleComment(bundleComment);
        buildRequest.setArchiveFlag(archive);
        buildRequest.setConsolidateFlag(consolidate);
        buildRequest.setPredate(predate);

        String session = RequestContextHolder.currentRequestAttributes().getSessionId();
        buildRequest.setSessionId(session);

        try {
            String message = "Starting bundle building process for bundle '" + buildRequest.getBundleName()
                    + "' initiated by user : " + _currentUserService.getCurrentUserDetails().getUsername();
            String component = System.getProperty("admin.chefRole");
            loggingService.log(component, Level.INFO, message);
            buildResponse = _bundleService.build(buildRequest);
            buildResponse = _bundleService.buildBundleResultURL(buildResponse.getId());
            response = constructResponse(buildResponse);
        } catch (Exception any) {
            _log.error("exception in build:", any);
            response = Response.serverError().build();
        }
    }

    return response;
}

From source file:org.saiku.web.service.SessionService.java

private void createSession(Authentication auth, String username, String password) {

    if (auth == null || !auth.isAuthenticated()) {
        return;/*w  w w  . ja  v  a2s .c om*/
    }

    boolean isAnonymousUser = (auth instanceof AnonymousAuthenticationToken);
    Object p = auth.getPrincipal();
    String authUser = getUsername(p);
    boolean isAnonymous = (isAnonymousUser || StringUtils.equals("anonymousUser", authUser));
    boolean isAnonOk = (!isAnonymous || (isAnonymous && anonymous));

    if (isAnonOk && auth.isAuthenticated() && p != null && !sessionHolder.containsKey(p)) {
        Map<String, Object> session = new HashMap<>();

        if (isAnonymous) {
            log.debug("Creating Session for Anonymous User");
        }

        if (StringUtils.isNotBlank(username)) {
            session.put("username", username);
        } else {
            session.put("username", authUser);
        }
        if (StringUtils.isNotBlank(password)) {
            session.put("password", password);
        }
        session.put("sessionid", UUID.randomUUID().toString());
        session.put("authid", RequestContextHolder.currentRequestAttributes().getSessionId());
        List<String> roles = new ArrayList<>();
        for (GrantedAuthority ga : SecurityContextHolder.getContext().getAuthentication().getAuthorities()) {
            roles.add(ga.getAuthority());
        }
        session.put("roles", roles);

        sessionHolder.put(p, session);
    }

}