Our Work
200+ Enterprises across globally trust KTree for their Web & Mobile application Development needs.See What We Do
Updated today
In this step, select the identity provider values for your app so it can communicate with OneLogin.
settings.json Location
Issuer URL | ➞ | onelogin.saml2.idp.entityid |
SAML 2.0 Endpoint (HTTP) | ➞ | onelogin.saml2.idp.single_sign_on_service.url |
SLO Endpoint (HTTP) | ➞ | onelogin.saml2.idp.single_logout_service.url |
X.509 Certificate > View Details | ➞ | onelogin.saml2.idp.x509cert |
In this step, define the service provider values to identify your app to OneLogin. To do this:
Copy settings.json Value | to | Configuration Tab Field |
onelogin.saml2.sp.assertion_consumer_service.url | ➞ |
|
onelogin.saml2.sp.single_logout_service.url | ➞ | Single Logout URL |
onelogin.saml2.sp.entityid | ➞ | Audience |
Liferay Login and Logout Filter
@Override
protected void processFilter(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
throws Exception {
logger.info("======== Login Logout Filter ==========");
HttpSession session = request.getSession();
String pathInfo = request.getPathInfo();
Object forceLogout = session.getAttribute("SAML_FORCE_LOGOUT");
if (forceLogout != null) {
session.removeAttribute("SAML_FORCE_LOGOUT");
String logoutUrl = "https://secure2.ktree.org/";
response.sendRedirect(logoutUrl);
return;
}
if (pathInfo.contains("/portal/logout")) {
try {
String relayState = PropsReader.get("saml.default.landing.page");
Auth auth = new Auth(request, response);
auth.logout(relayState);
session.invalidate();
} catch (Exception e) {
logger.error(e, e);
}
return;
} else {
Object login = session.getAttribute("SAML_LOGIN");
if (Validator.isNotNull(login)) {
processFilter(SAMLLoginLogoutFilter.class.getName(), request, response, filterChain);
return;
}
String redirectUrl = request.getParameter("redirect");
Auth auth = new Auth(request, response);
auth.login(redirectUrl);
return;
}
}
@Override
protected void processFilter(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
throws Exception {
logger.info("======== SAML ACS ==========");
Auth auth = new Auth(request, response);
auth.processResponse();
String nameId = auth.getNameId();
if (auth.isAuthenticated()) {
logger.info("==> User logged in,setting attribute for AutoLogin");
request.getSession().setAttribute("SAML_LOGIN", nameId);
String relayState = ParamUtil.getString(request, "RelayState");
if (relayState.isEmpty() || relayState.endsWith("/c/portal/login")) {
relayState = PropsReader.get("saml.default.landing.page");
}
response.sendRedirect(relayState);
}
}
@Override
protected void processFilter(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
throws Exception {
logger.info("======== SAML SLS ==========");
Auth auth = new Auth(request, response);
auth.processSLO();
List<String> errors = auth.getErrors();
if (errors.isEmpty()) {
logger.info("User Successfully logged out");
}
String relayState = ParamUtil.getString(request, "RelayState");
if (relayState.isEmpty() || relayState.endsWith("/c/portal/login")) {
relayState = PropsReader.get("saml.default.landing.page");
}
response.sendRedirect(relayState);
}
@Override
protected String[] doLogin(
HttpServletRequest request, HttpServletResponse response)
throws Exception {
HttpSession session = request.getSession();
long companyId = _portal.getCompanyId(request);
String login = (String)session.getAttribute("SAML_LOGIN");
if(login == null){
return null;
}
logger.info("========SAML Auto Login==========");
User user = _userLocalService.getUserByEmailAddress(
companyId, login);
addRedirect(request);
String[] credentials = new String[3];
credentials[0] = String.valueOf(user.getUserId());
credentials[1] = user.getPassword();
credentials[2] = Boolean.TRUE.toString();
return credentials;
}
KTree is the best offshore Liferay development company with extensive experience in Liferay Portal Development services along with Upgrade & Migration. Hire Liferay developers or Liferay development services from LiferayDeveloper.