@Override public ClientInfo getCurrentThreadClientInfo() { final Subject subject = SecurityUtils.getSubject(); if (subject != null && subject.getPrincipal() != null) { final String userId = subject.getPrincipal().toString(); final Request current = Request.getCurrent(); if (current != null) { final String currentIp = RemoteIPFinder.findIP(current); final String currentUa = current.getClientInfo().getAgent(); return new ClientInfo(userId, currentIp, currentUa); } else { // this is not HTTP processing thread at all return null; } } // we have no Shiro subject or "anonymous" user (from Shiro perspective, null principals return null; } }
else if (Request.getCurrent() != null) { baseURL = Request.getCurrent().getRootRef().getParentRef().getParentRef().toString();
@Override public ClientInfo getCurrentThreadClientInfo() { final Subject subject = SecurityUtils.getSubject(); if ( subject != null && subject.getPrincipal() != null ) { final String userId = subject.getPrincipal().toString(); final Request current = Request.getCurrent(); if ( current != null ) { final String currentIp = RemoteIPFinder.findIP( current ); final String currentUa = current.getClientInfo().getAgent(); return new ClientInfo( userId, currentIp, currentUa ); } else { // this is not HTTP processing thread at all return null; } } // we have no Shiro subject or "anonymous" user (from Shiro perspective, null principals return null; } }
else if ( Request.getCurrent() != null ) baseURL = Request.getCurrent().getRootRef().toString();