Shiro springboot does not jump to the configuration success page

problem description

in the process of integrating springboot and shiro, I found that after successful login, I could not jump to the url configured by shiro. Instead, I directly returned the message of controller. Please give me your advice

.

the environmental background of the problems and what methods you have tried

related codes

/ / Please paste the code text below (do not replace the code with pictures)
@ Configuration
public class ShiroConfiguration {

/**
 * LifecycleBeanPostProcessorDestructionAwareBeanPostProcessor
 * org.apache.shiro.util.Initializablebean
 * AuthorizingRealmEhCacheManager
 */
@Bean(name = "lifecycleBeanPostProcessor")
public LifecycleBeanPostProcessor lifecycleBeanPostProcessor() {
    return new LifecycleBeanPostProcessor();
}

/**
 * DefaultAdvisorAutoProxyCreatorSpringbeanAdvisorAOP
 */
@Bean
@ConditionalOnMissingBean
public DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator() {
    DefaultAdvisorAutoProxyCreator defaultAAP = new DefaultAdvisorAutoProxyCreator();
    defaultAAP.setProxyTargetClass(true);
    return defaultAAP;
}
/**
 * FilterRegistrationBean
 * @return
 */
@Bean
public FilterRegistrationBean filterRegistrationBean() {
    FilterRegistrationBean filterRegistration = new FilterRegistrationBean();
    filterRegistration.setFilter(new DelegatingFilterProxy("shiroFilter"));
    filterRegistration.setEnabled(true);
    filterRegistration.addUrlPatterns("/*");
    filterRegistration.setDispatcherTypes(DispatcherType.REQUEST);
    return filterRegistration;
}



/**
 * HashedCredentialsMatcher
 * 
 * form
 */
@Bean(name = "hashedCredentialsMatcher")
public HashedCredentialsMatcher hashedCredentialsMatcher() {
    HashedCredentialsMatcher credentialsMatcher = new HashedCredentialsMatcher();
    credentialsMatcher.setHashAlgorithmName("MD5");
    credentialsMatcher.setHashIterations(2);
    credentialsMatcher.setStoredCredentialsHexEncoded(true);
    return credentialsMatcher;
}

/**
 * ShiroRealmAuthorizingRealm
 * JdbcRealm
 */
@Bean(name = "shiroRealm")
@DependsOn("lifecycleBeanPostProcessor")
public ShiroRealm shiroRealm() {
    ShiroRealm realm = new ShiroRealm();

/ / realm.setCredentialsMatcher (hashedCredentialsMatcher ());

    return realm;
}

/ / * *
/ / * EhCacheManager, cache management. After a user has successfully logged in, cache the user information and permission information.
/ / * then put it into the user"s session every time the user requests. If this bean is not set, each request will query the database once.
/ / * /
/ / @ Bean (name = "ehCacheManager")
/ / @ DependsOn ("lifecycleBeanPostProcessor")
/ / public EhCacheManager ehCacheManager () {
/ / return new EhCacheManager ();
/ /}

/**
 * SecurityManagersession
 * //
 */
@Bean(name = "securityManager")
public DefaultWebSecurityManager securityManager() {
    DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
    securityManager.setRealm(shiroRealm());

/ / securityManager.setCacheManager (ehCacheManager ());

    return securityManager;
}

/**
 * ShiroFilterFactoryBeanfactorybeanShiroFilter
 * securityManagerfiltersfilterChainDefinitionManager
 */
@Bean(name="shiroFilter")
public ShiroFilterFactoryBean shiroFilterFactoryBean() {
    ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
    shiroFilterFactoryBean.setSecurityManager(securityManager());

    Map<String, Filter> filters = new LinkedHashMap<String, Filter>();

/ / LogoutFilter logoutFilter = new LogoutFilter ();
/ / logoutFilter.setRedirectUrl ("/ login");
/ / filters.put ("logout", null);
/ / shiroFilterFactoryBean.setFilters (filters);

    Map<String, String> filterChainDefinitionManager = new LinkedHashMap<String, String>();
    filterChainDefinitionManager.put("/login", "anon");
    filterChainDefinitionManager.put("/logout", "logout");
    filterChainDefinitionManager.put("/**", "authc");

/ / filterChainDefinitionManager.put ("/ events/**", "authc, filterChainDefinitionManager.put [Rolle _ ADMIN]");
/ / filterChainDefinitionManager.put ("/ user/edit/**", "authc,perms [user:edit]"); / / for testing purposes, you can also read
/ / filterChainDefinitionManager.put ("/ * *", "anon") from the database or other configuration;

    shiroFilterFactoryBean.setSuccessUrl("/");
    shiroFilterFactoryBean.setLoginUrl("/login");
    shiroFilterFactoryBean.setUnauthorizedUrl("/403");
    shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionManager);
    return shiroFilterFactoryBean;
}



/**
 * AuthorizationAttributeSourceAdvisorshiroAdvisor
 * AopAllianceAnnotationsAuthorizingMethodInterceptor
 */
@Bean
public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor() {
    AuthorizationAttributeSourceAdvisor aASA = new AuthorizationAttributeSourceAdvisor();
    aASA.setSecurityManager(securityManager());
    return aASA;
}

}

here is my realm and contrller code

private Logger logger = LoggerFactory.getLogger (this.getClass ());

@Autowired
private UserService userService;

@Override
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {
    logger.info("doGetAuthorizationInfo+"+principalCollection.toString());
    UserPO user = userService.findByUserName((String) principalCollection.getPrimaryPrincipal());


    //principalssession key=userId value=principals
    SecurityUtils.getSubject().getSession().setAttribute(String.valueOf(user.getId()),SecurityUtils.getSubject().getPrincipals());

    SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();


    //

/ / userService.updateUserLogin (user);

    return info;
}

@Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException {
    logger.info("doGetAuthenticationInfo +"  + authenticationToken.toString());

    UsernamePasswordToken token = (UsernamePasswordToken) authenticationToken;
    String userName=token.getUsername();
    logger.info(userName+token.getPassword());

    UserPO user = userService.findByUserName(token.getUsername());
    if (user != null) {

/ / byte [] salt = Encodes.decodeHex (user.getSalt ());
/ / ShiroUser shiroUser=new ShiroUser (user.getId (), user.getLoginName (), user.getName ());

        //session
        System.out.println(user.getPassword());
        Session session = SecurityUtils.getSubject().getSession();
        session.setAttribute("user", user);
        return new SimpleAuthenticationInfo(userName,token.getPassword(),getName());
    } else {
        return null;
    }

/ / return null;

}





/**
 * Go login
 * @param request
 * @return
 */
@RequestMapping(value="login", method= RequestMethod.POST)
public String login(HttpServletRequest request, RedirectAttributes redriect) {
    String account = request.getParameter("name");
    String password = request.getParameter("password");

    UsernamePasswordToken upt = new UsernamePasswordToken(account, password);
    Subject subject = SecurityUtils.getSubject();
    try {
        subject.login(upt);
    } catch (AuthenticationException e) {
        e.printStackTrace();
        redriect.addFlashAttribute("errorText", "!");
        return "redirect:/login";
    }
    return "{\"Msg\":\"\",\"state\":\"success\"}";
}

what result do you expect? What is the error message actually seen?

Apr.05,2022
MySQL Query : SELECT * FROM `codeshelper`.`v9_news` WHERE status=99 AND catid='6' ORDER BY rand() LIMIT 5
MySQL Error : Disk full (/tmp/#sql-temptable-64f5-1e54d2d-452e0.MAI); waiting for someone to free some space... (errno: 28 "No space left on device")
MySQL Errno : 1021
Message : Disk full (/tmp/#sql-temptable-64f5-1e54d2d-452e0.MAI); waiting for someone to free some space... (errno: 28 "No space left on device")
Need Help?