新聞中心
這篇文章主要講解了“怎么用web過(guò)濾器增加solr后臺(tái)登錄驗(yàn)證”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“怎么用web過(guò)濾器增加solr后臺(tái)登錄驗(yàn)證”吧!
為北票等地區(qū)用戶(hù)提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及北票網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè)、北票網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專(zhuān)業(yè)、用心的態(tài)度為用戶(hù)提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶(hù)的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
solr后臺(tái)自帶是沒(méi)有登錄功能的,默認(rèn)訪(fǎng)問(wèn)地址是:http://localhost:8983/solr/#/(內(nèi)置jetty運(yùn)行)。
要給sorl后臺(tái)增加登錄驗(yàn)證方法:
1、使用web服務(wù)器的登錄驗(yàn)證(例如jetty、tomcat)
這種方式好處是不需要另外寫(xiě)代碼,只需配置一下對(duì)應(yīng)的web服務(wù)器就行了。
2、使用web過(guò)濾器過(guò)濾地址驗(yàn)證
這種方法是更加靈活,缺點(diǎn)是需要點(diǎn)代碼開(kāi)發(fā)。
本文介紹的是第二種方法:
SolrLoginFilter.java package com.penngo.solr; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.commons.lang3.StringUtils; public class SolrLoginFilter implements Filter { public void init(FilterConfig config) throws ServletException { } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest httpRequest = (HttpServletRequest)request; HttpServletResponse httpResponse = (HttpServletResponse)response; HttpSession session = httpRequest.getSession(); String url = httpRequest.getRequestURL().toString(); String userAgent = httpRequest.getHeader("user-agent"); String query = httpRequest.getQueryString(); String servletPath = httpRequest.getServletPath(); String contextPath = httpRequest.getContextPath(); System.out.println("url=======" + ", url:" + url + ", servletPath:" + servletPath + ", contextPath:" + contextPath + ", query:" + query + ", userAgent:" + userAgent); Object isLogin = session.getAttribute("isLogin"); if(isLogin == null || ((boolean)isLogin) != true) { String user = StringUtils.isEmpty(request.getParameter("user")) == false ? request.getParameter("user") : ""; String password = StringUtils.isEmpty(request.getParameter("password")) == false ? request.getParameter("password") : ""; if(user.equals("admin") == true && password.equals("123") == true) { session.setAttribute("isLogin", true); httpResponse.sendRedirect(contextPath); return; } else { httpRequest.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); out.println(loginPage()); out.close(); return; } } chain.doFilter(request, response); } public void destroy() { } private String loginPage() { String page = "\n" + "\n" + "\n" + "
在原來(lái)的web.xml中增加過(guò)濾器配置
SolrLoginFilter com.penngo.solr.SolrLoginFilter SolrLoginFilter / SolrRequestFilter org.apache.solr.servlet.SolrDispatchFilter excludePatterns /partials/.+,/libs/.+,/css/.+,/js/.+,/img/.+,/templates/.+ SolrRequestFilter /* LoadAdminUI org.apache.solr.servlet.LoadAdminUiServlet SolrRestApi org.restlet.ext.servlet.ServerServlet org.restlet.application org.apache.solr.rest.SolrSchemaRestApi LoadAdminUI /index.html SolrRestApi /schema/* .xsl application/xslt+xml index.html Disable TRACE / TRACE Enable everything but TRACE / TRACE
運(yùn)行結(jié)果:
感謝各位的閱讀,以上就是“怎么用web過(guò)濾器增加solr后臺(tái)登錄驗(yàn)證”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)怎么用web過(guò)濾器增加solr后臺(tái)登錄驗(yàn)證這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
本文標(biāo)題:怎么用web過(guò)濾器增加solr后臺(tái)登錄驗(yàn)證
文章網(wǎng)址:http://fisionsoft.com.cn/article/jscgsj.html