blob: 49e3fc7f24d10238d696ed0ccf89e5efdda916b0 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.rocketmq.dashboard.util;
import org.apache.commons.lang3.StringUtils;
import org.apache.rocketmq.dashboard.model.User;
import org.apache.rocketmq.dashboard.model.UserInfo;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.PrintWriter;
public class WebUtil {
public static final String USER_INFO = "userInfo";
public static final String USER_NAME = "username";
public static final String NEED_LOGIN = "needLogin";
/**
* Obtain ServletRequest header value
*
* @param request
* @param name
* @return
*/
public static String getHeaderValue(HttpServletRequest request, String name) {
String v = request.getHeader(name);
if (v == null) {
return null;
}
return v.trim();
}
/**
* Fetch request ip address
*
* @param request
* @return
*/
public static String getIp(ServletRequest request) {
HttpServletRequest req = (HttpServletRequest) request;
String addr = getHeaderValue(req, "X-Forwarded-For");
if (StringUtils.isNotEmpty(addr) && addr.contains(",")) {
addr = addr.split(",")[0];
}
if (StringUtils.isEmpty(addr)) {
addr = getHeaderValue(req, "X-Real-IP");
}
if (StringUtils.isEmpty(addr)) {
addr = req.getRemoteAddr();
}
return addr;
}
public static void redirect(HttpServletResponse response, HttpServletRequest request, String path) throws IOException {
response.sendRedirect(request.getContextPath() + path);
}
/**
* Obtain the full url path
*
* @param request
* @return
*/
public static String getUrl(HttpServletRequest request) {
String url = request.getRequestURL().toString();
String queryString = request.getQueryString();
if (queryString != null) {
url += "?" + request.getQueryString();
}
return url;
}
/**
* Write content to front-page/response
*
* @param response
* @param result
* @throws IOException
*/
public static void print(HttpServletResponse response, String result) throws IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.print(result);
out.flush();
out.close();
}
public static Object getValueFromSession(HttpServletRequest request, String key) {
HttpSession session = request.getSession(false);
if (session != null) {
return session.getAttribute(key);
}
return null;
}
public static UserInfo setLoginInfo(HttpServletRequest request, HttpServletResponse response, User user) {
String ip = WebUtil.getIp(request);
UserInfo userInfo = new UserInfo();
userInfo.setIp(ip);
userInfo.setLoginTime(System.currentTimeMillis());
userInfo.setUser(user);
return userInfo;
}
public static void removeSession(HttpServletRequest request) {
HttpSession session = request.getSession();
session.invalidate();
}
public static void setSessionValue(HttpServletRequest request, String key, Object value) {
HttpSession session = request.getSession();
session.setAttribute(key, value);
}
public static String getSessionId(HttpServletRequest request) {
return request.getSession().getId();
}
}