spring security 如何实现登陆后跳转至登录前页面

spring security4.x 如何实现登陆后跳转至登录前页面。
比如我访问http://xxxx:8080/ABC/user/getList.do 服务器发现用户没有登陆跳转到第三方服务器登陆,
登陆认证成功后不是到项目的主页面 还是到跳转至http://xxxx:8080/ABC/user/getList.do页面并请求数据

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
spring security 配置问题 登陆成功后无法跳转

<div class="iteye-blog-content-contain" style="font-size: 14px;"> <p><span>&lt;bean id="loginLogAuthenticationSuccessHandler" class="org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler"&gt;</span><br><span>&lt;property name="defaultTargetUrl" value="/index.action"&gt;&lt;/property&gt;</span><br><span>&lt;/bean&gt;</span><br><br><span>这样子配置的时候 登陆成功跳转不到这个action里面去,这个地址 绝对有效不可否认。</span><br><span>直接写&lt;property name="defaultTargetUrl" value="/index.jsp"&gt;&lt;/property&gt;就直接跳过去了,</span><br><span>但是我的页面全部在web-inf下面 所有希望用action来跳转。</span><br><span>请指点指点,非常感谢!</span></p> <p> </p> <p><span><span>&lt;security:http auto-config="false" access-denied-page="/403.jsp"</span><br><span>老是跳转到这个403的页面了。不只为何</span></span></p> </div>

SpringSecurity登录的时候一直重定向,回到登录页面

springsecurity3.2 <br/>说起来,我这个原本前台是ANGULARJS+HTML写的 <br/>但是公司单点登录必须要JSP页面,因为是老系统,html不支持 <br/>所以没办法,就写了个JSP来登录 <br/>然后我登录上去会报302,而且response里面带location:login.jsp <br/>我确认过用户名密码,没问题,而且我也重写了UserDetailsService <br/>但是根本没有到UserDetailServic这一步,应该是授权的时候就不通过 <br/>说实话,对springsecurity不太了解,下面是配置文件,麻烦大神指点! <br/><br/>config-file <br/> ``` <!-- 以下页面不被拦截 --> <http pattern="/login_sso.jsp" security="none"></http> <http pattern="/css/**" security="none"></http> <http pattern="/fonts/**" security="none"></http> <http pattern="/images/**" security="none"></http> <http pattern="/js/**" security="none"></http> <http pattern="/lib/**" security="none"></http> <http pattern="/plugins/**" security="none"></http> <http use-expressions="false"> <!-- 拦截规则 --> <intercept-url pattern="/**" access="ROLE_USER" /> <!-- 登录配置 1登陆页面 2登陆成功跳转页面 3登录失败跳转页面 4总是使用默认跳转页面--> <form-login login-page="/login_sso.jsp" default-target-url="/index.html" login-processing-url="/j_spring_security_check" authentication-failure-url="/login.html" always-use-default-target="true"/> <csrf disabled="true"/> <!-- 由于使用了框架页面,所以要进行以下配置 --> <headers> <frame-options policy="SAMEORIGIN"/> </headers> <!-- 登出配置 --> <logout logout-url="/logout" logout-success-url="/login_sso.jsp"/> </http> ``` <br/> login.jsp ``` <form id="loginForm" name="loginForm" action="/modify/j_spring_security_check" method="post" > <input type="text" id="username" name="name" /> <input type="password" id="password" name="password" /> <input value="登录" style="width:100%;" type="button" onclick="document:loginForm.submit()"> </form> ``` <br/><br/> response信息,这个是向login-processing-url发起请求后的返回信息,直接被重定向回login.jsp了,而且都没到UserDetailService <br/> ![图片说明](https://img-ask.csdn.net/upload/201903/05/1551788138_54021.png)

springsecurity 登录跳转问题?

springsecurity 登录,不管成功与否,都不跳转页面,一直停留在login.html 也经过了认证管理器,在UserDetails的 loadUserByUsername方法中也给用户赋予了角色, 该配置的都配置了,请问是哪里的问题? ``` <http use-expressions="false"> <!-- 当前用户必须有ROLE_USER 的角色才可以访问根目录及所属子目录的资源 --> <intercept-url pattern="/**" access="ROLE_STUDENT" /> <!-- 开启表单登录功能 --> <form-login login-page="/login.html" default-target-url="/admin/stu_index.html" authentication-failure-url="/dm_index.html" always-use-default-target="true"/> <csrf disabled="true" /> <!-- 如果在系统中使用了框架页,需要设置框架页的策略为 SAMEORIGIN --> <headers> <frame-options policy="SAMEORIGIN" /> </headers> <!-- logout-success-url 退出后跳转的地址,默认是登录页 --> <logout logout-url="" logout-success-url=""/> </http> ```

Spring Security 自定义登陆页面和登陆处理

如题,可以跳转到登陆页面,也可以登陆,但是登陆处理的action为什么没有用到?? 还登陆上去了 ![图片说明](https://img-ask.csdn.net/upload/201704/01/1491044896_997257.jpg)

springsecurity 登录,不管成功与否,都不跳转页面,一直停留在login.html

springsecurity登录,不管成功与否都不跳转,一直停留在login.html 经过了认证管理器,在UserDetails的 loadUserByUsername方法中也给用户赋予了角色, 该配置的都配置了,请问是哪里的问题? ``` <http use-expressions="false"> <!-- 当前用户必须有ROLE_USER 的角色才可以访问根目录及所属子目录的资源 --> <intercept-url pattern="/**" access="ROLE_STUDENT" /> <!-- 开启表单登录功能 --> <form-login login-page="/login.html" default-target-url="/admin/stu_index.html" authentication-failure-url="/dm_index.html" always-use-default-target="true"/> <csrf disabled="true" /> <!-- 如果在系统中使用了框架页,需要设置框架页的策略为 SAMEORIGIN --> <headers> <frame-options policy="SAMEORIGIN" /> </headers> <!-- logout-success-url 退出后跳转的地址,默认是登录页 --> <logout logout-url="" logout-success-url=""/> </http> ```

spring boot整合spring security如何自定义登陆页面

请问spring boot整合spring security如何自定义登陆页面, /** * Created by song on 2016/5/28. * 设置 /login 转向 login.html页面 */ @Configuration public class SpringMvcConfig extends WebMvcConfigurerAdapter{ @Override public void addViewControllers(ViewControllerRegistry registry){ registry.addViewController("/login").setViewName("login"); } } 没有定位到这个login.html页面,是不是需要在启动类或者是spring security配置类里面配置一下呢,求大神解惑,感激不尽 ![图片说明](https://img-ask.csdn.net/upload/201605/28/1464367522_822821.png) ![图片说明](https://img-ask.csdn.net/upload/201605/28/1464367535_886911.png)

spring security3 自定义登录页面,无论输入什么,直接被拦截跳到错误页面

spring security 3,做数据库验证,启动没有问题,但每次点登录按钮的时候,不论输入正确或错误的用户名密码,都直接跳到错误页面,debug跟踪后发现,在InvocationSecurityMetadataSourceService中的getAttributes(Object object)方法传入的object的url值就是验证失败页面的url,感觉就是没有权限,被拦截了,请教各位,我的配置有什么问题吗?下面是代码 login.jsp [code="jsp"]<form method="post" action="${pageContext.request.contextPath}/j_spring_security_check"> <table> <td>用户名</td> <td><input type="text" name="j_username" value=""></td> <tr> <td>密码</td> <td><input type="password" name="j_password" value=""></td> </table> <input type="submit" name="button" value="登录" /> </form>[/code] security.xml [code="xml"] <http auto-config="true" access-denied-page="/jsp/home.jsp"> <intercept-url pattern="/css/**" filters="none" /> <intercept-url pattern="/style/**" filters="none" /> <intercept-url pattern="/images/**" filters="none" /> <intercept-url pattern="/js/**" filters="none" /> <intercept-url pattern="/jsp/login.jsp" filters="none" /> <!-- <intercept-url pattern="/jsp/admin.jsp" access="ROLE_ADMIN" /> <intercept-url pattern="/**" access="ROLE_USER" /> --> <form-login login-page="/jsp/login.jsp" authentication-failure-url="/jsp/error.jsp" default-target-url="/jsp/index.jsp" /> <logout logout-success-url="/jsp/login.jsp"/> <session-management> <concurrency-control max-sessions="1" error-if-maximum-exceeded="true" /> </session-management> <custom-filter ref="pawnFilter" before="FILTER_SECURITY_INTERCEPTOR" /> </http> <beans:bean id="pawnFilter" class="com.sywzsh.security.PawnFilterSecurityInterceptor"> <beans:property name="authenticationManager" ref="authenticationManager" /> <beans:property name="accessDecisionManager" ref="pawnAccessDecisionManagerService" /> <beans:property name="securityMetadataSource" ref="pawnSecurityDataSourceService" /> </beans:bean> <authentication-manager alias="authenticationManager"> <authentication-provider user-service-ref="userDetailsService"> </authentication-provider> </authentication-manager> <!-- 查询用户信息 --> <beans:bean id="userDetailsService" class="com.sywzsh.security.PawnUsersDetailsService" /> <!-- 决策访问器,判断是否有权限访问某个资源 --> <beans:bean id="pawnAccessDecisionManagerService" class="com.sywzsh.security.PawnAccessDecisionManagerService" /> <!-- 资源数据定义,资源与角色相关联,一个资源可被哪些角色访问 --> <beans:bean id="pawnSecurityDataSourceService" init-method="loadResourceDefine" class="com.sywzsh.security.PawnInvocationSecurityMetadataSourceService"> </beans:bean> [/code] 过滤器等代码与网上教程一致,如http://andy-ghg.iteye.com/blog/1081622 ,http://blog.csdn.net/remote_roamer/archive/2010/07/05/5713777.aspx 代码大同小异,不知道有哪位兄台遇到过这种情况。

spring security登录问题

![图片说明](https://img-ask.csdn.net/upload/201605/03/1462271437_651305.png) spring security 登录 访问/security_check,404,在本地访问正常,服务器上单个tomcat启动,也可以正常访问。但部署为分布式节点时,由外网访问就访问不了了。从日志看, 有打印security相关的日志,但security_check的请求没有被security识别为默认的登录请求,而作为了一个普通请求,被security拦截了。如下图![图片说明](https://img-ask.csdn.net/upload/201605/03/1462271748_491075.png), 运行环境一致,分布式部署使用的nginx

关于Spring security登陆后的问题

关于SecurityContextHolder 我在用户登陆成功后,调用以下方法,将用户信息保存在SecurityContextHolder的contextlimian ``` protected void makeUser(User userDetails) { logger.info("开始记录登陆用户信息!用户名:{}",userDetails.getUsername()); SecurityContextHolder.getContext().setAuthentication(userDetails); HttpSession session = request.getSession(true); session.setAttribute(userDetails.getUsername(), SecurityContextHolder.getContext()); logger.info("记录登陆用户信息完毕!"); } ``` 然后登陆完成以后,在网页页面上用js进行的跳转到index,此时会获取当前用户信息 调用方法如下: ``` /** * 获取当前用户 */ protected Authentication currentUser() { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); SecurityContext context =(SecurityContext) (request.getSession().getAttribute("SPRING_SECURITY_CONTEXT")); return null == authentication? context.getAuthentication() : authentication; } ``` 跳转到index的时候 ![图片说明](https://img-ask.csdn.net/upload/201901/16/1547606513_471948.png) 此时是能够从上面获取用户的方法中得到用户的信息的 但是一旦我在index界面刷新页面的时候,再次调用上面的方法得到的是匿名用户,相当于处于未登陆的状态。 ![图片说明](https://img-ask.csdn.net/upload/201901/16/1547607346_15438.png) 按我的分析,如果登陆成功了,第二次获取不应该获取不到用户信息,第一次获取后,我并没有clearContext,讲道理应该不会获取不到,如果没有登陆成功,则应该是往我设置的登陆页面跳转。 所以我觉得应该是我配置的问题 所以我把配置贴出来,请大佬帮忙看下问题在哪里: ``` @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Autowired SecurityFilter securityFilter; @Autowired UserService userService; @Override public void configure(AuthenticationManagerBuilder auth) throws Exception { auth.userDetailsService(userService).passwordEncoder(getpasswordEncoder()); auth.eraseCredentials(false); } private SecuritySuccessHandler getsecuritySuccessHandler() { return new SecuritySuccessHandler(); } @Override protected void configure(HttpSecurity http) throws Exception { http.addFilterBefore(securityFilter, FilterSecurityInterceptor.class) .authorizeRequests() .antMatchers("/login", "/dologin","/css/**", "/font/*", "/img/**", "/js/**").permitAll() .and().formLogin() .loginPage("/login").permitAll().successHandler(getsecuritySuccessHandler()) .and().logout().logoutSuccessUrl("/login") .invalidateHttpSession(true) .and().rememberMe()//登录后记住用户,下次自动登录,数据库中必须存在名为persistent_logins的表 .tokenValiditySeconds(1209600) .and().csrf().disable(); } @Override public void configure(WebSecurity web) throws Exception { super.configure(web); } private PasswordEncoder getpasswordEncoder() { return new PasswordEncoder(); } } ``` 补充:刷新页面后,我用这个方法SecurityContext context =(SecurityContext) (request.getSession().getAttribute("SPRING_SECURITY_CONTEXT")从session里面也取不到我的用户数据,取出来的是null。

SpringBoot+Security登出无法跳转指定页面

使用SpringBoot 2.1.3 +SpringSecurity,按照网上教程设置logoutSuccessUrl为跳转的index路径,但是无法正常跳转,根据查看,页面发起请求/logout随后转向/index,但又被重定向至/login,截图如下 ![图片说明](https://img-ask.csdn.net/upload/201904/11/1554984197_4752.jpg) WebSecurityConfig配置如下 ``` @Override protected void configure(HttpSecurity http) throws Exception { //允许基于HttpServletRequest使用限制访问 http.authorizeRequests() //不需要身份验证 .antMatchers("/js/**","/css/**","**/images/**","/fonts/**","/doc/**","/static/**").permitAll() .antMatchers("/login.html","/login").permitAll() .antMatchers("/index","/","/index.html").permitAll() .antMatchers("/register/**","/register.html").permitAll() .antMatchers("/developer_center/**","/price_list/**").permitAll() .antMatchers("/contact","/contact.html").permitAll() .anyRequest().authenticated() //自定义登陆界面 .and().formLogin() .loginPage("/login").permitAll() .loginProcessingUrl("/login") .failureUrl("/login?error=1") .permitAll().defaultSuccessUrl("/index") .and().logout().logoutUrl("/logout").logoutSuccessUrl("/index") .and().headers().frameOptions().disable() .and().exceptionHandling().accessDeniedPage("/login") .and().httpBasic() .and().sessionManagement().invalidSessionUrl("/login") .and().rememberMe() .and().csrf().disable(); } ``` Controller中的Index请求如下: ``` @RequestMapping(value = {"index",""},method = RequestMethod.GET) public String getIndexHTML(HttpServletRequest httpServletRequest){ HttpSession httpSession = httpServletRequest.getSession(true); if (httpSession.getAttribute("company_email")==null){ httpSession.setAttribute("company_serial_number",companyConfig.getSerial_number()); httpSession.setAttribute("company_email",companyConfig.getEmail()); } if(iAuthenticationFacade.getAuthentication().getName()!="anonymousUser") { httpSession.setAttribute("flag",1); httpSession.setAttribute("userinfo",userMapper.findByLoginName(iAuthenticationFacade.getAuthentication().getName())); } else httpSession.setAttribute("flag",0); return "index"; } ``` 跪求高人指点一二,谢谢!

springSecurity 跨域跳转后,session 问题

公司有2台tomcat服务器。通过nginx负载均衡。 现在用户登录后,比如,进的是A节点,在执行上传文件操作时,指定上传到B节点;上传完后,刷新当前页面,IE 会回到登录页面;而firefox和chrome没有出现这种问题。请问各位这是怎么回事呢???

使用Spring Security 实现了登陆返回令牌,但是拦截了得请求不能访问

使用Spring Security 实现了登陆返回令牌 ![图片说明](https://img-ask.csdn.net/upload/201909/04/1567597685_205833.png) 然后,我想着使用令牌去访问给拦截了得请求URL,但是还是提示没有权限 这是为什么呢,求思路或者教程

spring security用ajax提交登录页面的校验问题

之前是用自定义的spring security的表单提交过滤方法来做的,就像这样: <custom-filter position="FORM_LOGIN_FILTER" ref="loginFilter"/> 这种应该是表单提交才能有效吧?现在用ajax提交发现不起作用了,不知道spring security针对ajax提交有什么校验方法可以用的?

StringMVC+Spring-Security 登陆后地址栏出现/timeout 跳转到404页面

第一次使用Spring-Security ,下载了几个demo 也看了 文档, 使用最小http配置和配置测试用户 都是正常的, 就是使用数据库用户登录的时候,不知道是哪里出的问题, 求指点,感激不尽! [b]spring-security.xml内容[/b]: [code="java"] <?xml version="1.0" encoding="UTF-8"?> <beans:beans xmlns="http://www.springframework.org/schema/security" xmlns:beans="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.0.xsd" default-autowire="byType" default-lazy-init="true"> <http auto-config='true'> <intercept-url pattern="/img/**" filters="none"/> <!-- 静态资源、登陆页面不过滤, filters="none" 表示不过滤 --> <intercept-url pattern="/js/**" filters="none"/> <intercept-url pattern="/css/**" filters="none"/> <intercept-url pattern="/dwz/**" filters="none"/> <intercept-url pattern="/index.jsp*" filters="none"/> <intercept-url pattern="/hello" filters="none"/> <intercept-url pattern="/user/login" filters="none"/> <intercept-url pattern="/**" access="ROLE_USER"/> <form-login login-page='/hello' default-target-url='/user/index' always-use-default-target='true'/> </http> <!-- 测试用户 <authentication-manager> <authentication-provider> <user-service> <user name="jimi" password="jimispassword" authorities="ROLE_USER,ROLE_ADMIN"/> <user name="bob" password="bobspassword" authorities="ROLE_USER"/> </user-service> </authentication-provider> </authentication-manager> --> <!-- 指定一个自定义的authentication-manager :customUserDetailsService --> <authentication-manager> <authentication-provider user-service-ref="customUserDetailsService"> <password-encoder hash="plaintext"/> </authentication-provider> </authentication-manager> <beans:bean id="customUserDetailsService" class="com.travel.spring.service.UserDetailsServiceImpl" /> </beans:beans> [/code] [b] com.travel.spring.service.UserDetailsServiceImpl 代码:[/b] [code="java"] package com.travel.spring.service; import java.util.ArrayList; import java.util.Collection; import javax.annotation.Resource; import org.apache.log4j.Logger; import org.springframework.dao.DataAccessException; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.authority.GrantedAuthorityImpl; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.transaction.annotation.Transactional; import com.travel.spring.model.WebUser; @Transactional(readOnly = true) public class UserDetailsServiceImpl implements UserDetailsService { protected static Logger logger = Logger.getLogger("service"); @Resource(name = "webUserService") private IWebUserService webUserService; public UserDetails loadUserByUsername(String username){ try { WebUser user = webUserService.getUserByName(username);// user已经获得 为:admin,123456,李岩 if (user == null) { throw new UsernameNotFoundException("用户{ " + username + " }不存在!"); } //Set<GrantedAuthority> grantedAuths = obtainGrantedAuthorities(user); Collection<GrantedAuthority>grantedAuths = obtainGrantedAuthorities(user); // -- mini-web示例中无以下属性, 暂时全部设为true. --// boolean enabled = true; boolean accountNonExpired = true; boolean credentialsNonExpired = true; boolean accountNonLocked = true; UserDetails userdetails = new org.springframework.security.core.userdetails.User( user.getLoginName(), user.getPassWord(), enabled, accountNonExpired, credentialsNonExpired, accountNonLocked, grantedAuths); return userdetails; } catch (Exception e) { // TODO: handle exception } return null; } /** * 获得当前User的权限('ROLE_' 开头的) */ private Collection<GrantedAuthority> obtainGrantedAuthorities(WebUser user) { Collection<GrantedAuthority> auths=new ArrayList<GrantedAuthority>(); GrantedAuthorityImpl auth2=new GrantedAuthorityImpl("ROLE_USER"); auths.add(auth2); return auths; } } [/code] [b]登陆页面代码:[/b] [code="java"] <div class="panel-c-l"> <form name="f" action="<%=path%>/j_spring_security_check" method='post'> <table cellpadding="0" cellspacing="0"> <tbody> <tr> <td align="left" colspan="2"> <h3>请使用Travel Manager系统账号登陆</h3> </td> </tr> <tr> <td align="right">账号:</td><td align="left"><input type="text" id="j_username" name="j_username" class="login-text" /></td> </tr> <tr> <td align="right">密码:</td><td align="left"><input type="password" name="j_password" class="login-text" /></td> </tr> <tr> <td align="center" colspan="2"> <input type="submit" id="btnLogin" value="登陆" class="login-btn" /> </td> </tr> </tbody> </table> </form> </div> [/code] [b] UserController.java 代码[/b] [code="java"]package com.travel.spring.web; import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Set; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.authority.GrantedAuthorityImpl; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import com.travel.spring.model.WebUser; import com.travel.spring.service.IWebUserService; @Controller @RequestMapping("/user") public class UserController { private IWebUserService webUserService; public IWebUserService getWebUserService() { return webUserService; } public void setWebUserService(IWebUserService webUserService) { this.webUserService = webUserService; } @RequestMapping(value="/index") public String index(Model model,HttpServletRequest request,HttpSession session) throws Exception{ return "admin/index"; } } [/code] 用户名 密码填写错误,还是跳转到当前页面, 如果填写正确了,就会出现 /timeout 404页面 ,如图 [img]http://dl.iteye.com/upload/attachment/0083/5848/ea079fb1-37b6-3aaa-806e-7af4198b89a3.jpg[/img]

spring security 中,配置登录页面,登录页面的action一定要是j_spring_security_check吗?

我自定义了一个登录页面,登录的action也是自己定义的,主要是去数据库验证用户名和密码是否正确。然后把当前用户存在session中。 可发现Security 的http配置完后,拥有权限的用户并不能正确进入页面,都被拦截然后重定向到登录页面。因为初次使用security,有没高手给点意见,哪儿出了问题? 截取配置片段: <http> <form-login login-page="/demo/user/login" login-processing-url="/demo/user/doLogin" default-target-url="/demo/user/welcome.jsp" authentication-failure-url="/traffic/user/login"/> <intercept-url pattern="/login.jsp" filters="none"/> <intercept-url pattern="/index.jsp" filters="none"/> <intercept-url pattern="/demo/user/login" filters="none"/> <intercept-url pattern="/demo/user/doLogin" filters="none"/> <intercept-url pattern="/demo/user/welcome" filters="none"/> <intercept-url pattern="/demo/user/save" access="ROLE_1" /> <intercept-url pattern="/demo/user/new" access="ROLE_1" />

登陆校验一直跳转到失败页面

package com.hp.service.impl; import com.hp.entity.User; import com.hp.mapper.UserMapper; import com.hp.service.IUserServicce; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class UserServiceImpl implements IUserServicce { @Autowired private UserMapper userMapper; @Override public User login(User user){ User u = userMapper.selectUser(user); return u; } @Override public void register(User user) { userMapper.inserUser(user); } package com.hp.controller; import com.hp.entity.User; import com.hp.service.IUserServicce; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.servlet.ModelAndView; @Controller @RequestMapping("/userController") public class UserController { @Autowired private IUserServicce userServicce; @RequestMapping(value = {"/login"},method = {RequestMethod.POST}) public String login(@RequestParam("U_NAME") String U_NAME, @RequestParam("U_PS") String U_PS, Model model){ User user = new User(); user.setU_NAME(U_NAME); user.setU_PS(U_PS); if (userServicce.login(user) != null){ model.addAttribute("U_NAME",U_NAME); return "success"; } else { model.addAttribute("error","账号或密码错误"); return "unsuccess"; } } }** ``` <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.hp.mapper.UserMapper"> <select id="selectUser" parameterType="com.hp.entity.User" resultType="com.hp.entity.User"> select * from t_user <where> <if test="U_NAME != null and U_NAME !=''"> and U_NAME = #{U_NAME} </if> <if test="U_PS != null and U_PS !=''"> and U_PS = #{U_PS} </if> </where> </select> <insert id="insertUser" parameterType="com.hp.entity.User"> insert into t_user(U_NAME,U_PS,U_PHONE) values (#{U_NAME},#{U_PS},#{U_PHONE}) </insert> </mapper> ```

spring security的多登陆怎么配置?

<?xml version="1.0" encoding="UTF-8"?> <beans:beans xmlns="http://www.springframework.org/schema/security" xmlns:beans="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.0.xsd"> <http auto-config="true" create-session="always" access-denied-page="/static/common/denied.html" use-expressions="true" disable-url-rewriting="true"> <!-- 配置不要过滤的图片等静态资源,其中**代表可以跨越目录,*不可以跨越目录。 --> <!-- 后面带一个*,因为请求页面的时候可能会带一些参数 --> <intercept-url pattern="/services*" filters="none"/> <intercept-url pattern="/services/*" filters="none"/> <intercept-url pattern="/static/**" filters="none"/> <!-- 不过滤图片等静态资源 --> <intercept-url pattern="/login.jsp*" filters="none"/> <!-- 登录页面不过滤 --> <intercept-url pattern="/index1.jsp*" filters="none"/> <!-- 登录页面不过滤 --> <intercept-url pattern="/front/login" filters="none"/> <!-- 登录页面不过滤 --> <intercept-url pattern="/install.jsp*" filters="none"/> <!-- 系统初始化配置不过滤 --> <intercept-url pattern="/sys/init" filters="none"/> <intercept-url pattern="/front/**" filters="none"/> <intercept-url pattern="/**/*.swf" filters="none" /> <!-- 配置登录页面 --> <!-- <form-login login-page="/front/login.jsp" login-processing-url="/j_spring_security_check" --> <!-- authentication-failure-url="/front/login?error=true" --> <!-- default-target-url="/front/index" --> <!-- always-use-default-target="true" --> <!-- authentication-success-handler-ref="authenticationSuccess" --> <!-- authentication-failure-handler-ref="exceptionMappingAuthenticationFailureHandler"/> --> <form-login login-page="/login.jsp" login-processing-url="/j_spring_security_check" authentication-failure-url="/login.jsp?error=true" default-target-url="/index" always-use-default-target="true" authentication-success-handler-ref="authenticationSuccess" authentication-failure-handler-ref="exceptionMappingAuthenticationFailureHandler"/> <!--"记住我"功能,采用持久化策略(将用户的登录信息存放cookie) --> <remember-me use-secure-cookie="true"/> <!-- 用户退出的跳转页面 --> <logout invalidate-session="true" logout-url="/j_spring_security_logout" logout-success-url="/login.jsp"/> <!-- 会话管理,设置最多登录异常,error-if-maximum-exceeded = false为第二次登录就会使前一个登录失效 --> <session-management invalid-session-url="/login.jsp"> <concurrency-control max-sessions="1" error-if-maximum-exceeded="false" expired-url="/login.jsp?expired=true"/> </session-management> <!--添加自定义的过滤器 放在FILTER_SECURITY_INTERCEPTOR之前有效 --> <custom-filter ref="customFilterSecurityInterceptor" before="FILTER_SECURITY_INTERCEPTOR" /> <anonymous enabled="false" /> </http> <beans:bean id="authenticationSuccess" class="edu.buaa.hsps.system.service.MySavedRequestAwareAuthenticationSuccessHandler"> <beans:property name="defaultTargetUrl" value="/index"/> </beans:bean> <authentication-manager alias="authenticationManager"> <authentication-provider user-service-ref="customUserDetailsService"> <password-encoder hash="md5" base64="true"> <salt-source user-property="username"/> </password-encoder> </authentication-provider> </authentication-manager> <beans:bean id="exceptionMappingAuthenticationFailureHandler" class="org.springframework.security.web.authentication.ExceptionMappingAuthenticationFailureHandler"> <beans:property name="exceptionMappings"> <beans:props> <beans:prop key="org.springframework.security.authentication.DisabledException">/login.jsp?role=false</beans:prop> <beans:prop key="org.springframework.security.authentication.BadCredentialsException">/login.jsp?error=true</beans:prop> </beans:props> </beans:property> </beans:bean> </beans:beans> ``` ``` 在这个配置里面要怎么修改,需要一个前台登录,这里只配置了后台

Spring Security 4.0 CAS实现单点登录 &server参数问题

cas 中已经设置参数 ``` <bean id="casProcessingFilterEntryPoint" class="org.springframework.security.ui.cas.CasProcessingFilterEntryPoint" autowire="default" dependency-check="default" lazy-init="default"> <property name="loginUrl" value="http://locahost:8088/sso/login?sysname=Pentaho%20TEST"/> <!--设置系统名称(参数)--> <property name="serviceProperties"> <ref local="serviceProperties"/> </property> </bean> ``` 跳转时设置 ``` <bean id="serviceProperties" class="org.springframework.security.ui.cas.ServiceProperties" autowire="default" dependency-check="default" lazy-init="default"> <property name="service" value="http://localhost:8080/pentaho/j_spring_cas_security_check"/> <property name="sendRenew" value="true"/> </bean> ``` 跳转后得到的 url 是 http://locahost:8088/sso/login?sysname=Pentaho%20TEST?server=http%3A%2F%2Flocalhost%3A8080%2Fpentaho%2Fj_spring_cas_security_check 需得到的 url 是 http://locahost:8088/sso/login?sysname=Pentaho%20TEST&server=http%3A%2F%2Flocalhost%3A8080%2Fpentaho%2Fj_spring_cas_security_check 该如何设置?设置哪个参数? 即 ?server 变为 &server

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

我以为我学懂了数据结构,直到看了这个导图才发现,我错了

数据结构与算法思维导图

String s = new String(" a ") 到底产生几个对象?

老生常谈的一个梗,到2020了还在争论,你们一天天的,哎哎哎,我不是针对你一个,我是说在座的各位都是人才! 上图红色的这3个箭头,对于通过new产生一个字符串(”宜春”)时,会先去常量池中查找是否已经有了”宜春”对象,如果没有则在常量池中创建一个此字符串对象,然后堆中再创建一个常量池中此”宜春”对象的拷贝对象。 也就是说准确答案是产生了一个或两个对象,如果常量池中原来没有 ”宜春” ,就是两个。...

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

Linux面试题(2020最新版)

文章目录Linux 概述什么是LinuxUnix和Linux有什么区别?什么是 Linux 内核?Linux的基本组件是什么?Linux 的体系结构BASH和DOS之间的基本区别是什么?Linux 开机启动过程?Linux系统缺省的运行级别?Linux 使用的进程间通信方式?Linux 有哪些系统日志文件?Linux系统安装多个桌面环境有帮助吗?什么是交换空间?什么是root帐户什么是LILO?什...

将一个接口响应时间从2s优化到 200ms以内的一个案例

一、背景 在开发联调阶段发现一个接口的响应时间特别长,经常超时,囧… 本文讲讲是如何定位到性能瓶颈以及修改的思路,将该接口从 2 s 左右优化到 200ms 以内 。 二、步骤 2.1 定位 定位性能瓶颈有两个思路,一个是通过工具去监控,一个是通过经验去猜想。 2.1.1 工具监控 就工具而言,推荐使用 arthas ,用到的是 trace 命令 具体安装步骤很简单,大家自行研究。 我的使用步骤是...

学历低,无法胜任工作,大佬告诉你应该怎么做

微信上收到一位读者小涛的留言,大致的意思是自己只有高中学历,经过培训后找到了一份工作,但很难胜任,考虑要不要辞职找一份他能力可以胜任的实习工作。下面是他留言的一部分内容: 二哥,我是 2016 年高中毕业的,考上了大学但没去成,主要是因为当时家里经济条件不太允许。 打工了三年后想学一门技术,就去培训了。培训的学校比较垃圾,现在非常后悔没去正规一点的机构培训。 去年 11 月份来北京找到了一份工...

JVM内存结构和Java内存模型别再傻傻分不清了

讲一讲什么是Java内存模型 Java内存模型虽说是一个老生常谈的问题 ,也是大厂面试中绕不过的,甚至初级面试也会问到。但是真正要理解起来,还是相当困难,主要这个东西看不见,摸不着。 这是一个比较开放的题目,面试官主要想考察的是对Java内存模型的了解到了什么程度了,然后根据回答进行进一步的提问 下面,我们就这个问题的回答列一下我们的思路 具体的思路如下: 说一说Java内存模型的缘由 简略辨析...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

Google 与微软的浏览器之争

浏览器再现“神仙打架”。整理 | 屠敏头图 | CSDN 下载自东方 IC出品 | CSDN(ID:CSDNnews)从 IE 到 Chrome,再从 Chrome 到 Edge,微软与...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

搜狗输入法也在挑战国人的智商!

故事总是一个接着一个到来...上周写完《鲁大师已经彻底沦为一款垃圾流氓软件!》这篇文章之后,鲁大师的市场工作人员就找到了我,希望把这篇文章删除掉。经过一番沟通我先把这篇文章从公号中删除了...

85后蒋凡:28岁实现财务自由、34岁成为阿里万亿电商帝国双掌门,他的人生底层逻辑是什么?...

蒋凡是何许人也? 2017年12月27日,在入职4年时间里,蒋凡开挂般坐上了淘宝总裁位置。 为此,时任阿里CEO张勇在任命书中力赞: 蒋凡加入阿里,始终保持创业者的冲劲,有敏锐的...

总结了 150 余个神奇网站,你不来瞅瞅吗?

原博客再更新,可能就没了,之后将持续更新本篇博客。

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

什么时候跳槽,为什么离职,你想好了么?

都是出来打工的,多为自己着想

程序员为什么千万不要瞎努力?

本文作者用对比非常鲜明的两个开发团队的故事,讲解了敏捷开发之道 —— 如果你的团队缺乏统一标准的环境,那么即使勤劳努力,不仅会极其耗时而且成果甚微,使用...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

终于懂了TCP和UDP协议区别

终于懂了TCP和UDP协议区别

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

立即提问
相关内容推荐