我正在使用 spring 構建一個 Web 應用程式,為后端休眠,我正在使用 html,css, javascript jquery forfrontend 。我已經創建了注冊頁面、登錄頁面和主頁。流程是,用戶創建帳戶并使用用戶名和密碼登錄,如果他通過身份驗證,那么他將被重定向到主頁。出于安全原因,我們不會以明文形式存盤密碼。現在我是 Web 應用程式的管理員和創建者,有時需要管理員更改用戶資料或演示用戶可以在界面中做什么。我需要做的是創建用戶的登錄會話并更改他的帳戶和/或演示用戶如何在網站上執行操作(通過共享螢屏)。我想手動創建用戶會話,因為密碼以純文本形式存盤,我無法使用用戶名和密碼登錄。有沒有一種方法可以創建沒有密碼的瀏覽器登錄會話。我正在分享我的 Web 應用程式登錄頁面和主頁的螢屏截圖。我也在分享 spring 安全配置類。有沒有辦法我可以只指定一個用戶名,spring 可以為我創建一個登錄會話,我可以像普通用戶會話一樣訪問用戶的帳戶。
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
// add a reference to our security data source
@Autowired
private DataSource myDataSource;
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.jdbcAuthentication().dataSource(myDataSource);
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/signup_page","/forgot_password","/signup","/reset_password").permitAll()
.antMatchers("/resources/**").permitAll()
.anyRequest()
.authenticated()
.and()
.formLogin()
.loginPage("/login_page")
.loginProcessingUrl("/authenticateTheUser").permitAll()
.defaultSuccessUrl("/home_page")
.and()
.logout()
.logoutSuccessUrl("/login_page?logout")
.deleteCookies("JSESSIONID")
.invalidateHttpSession(true)
.permitAll()
.and()
.sessionManagement()
.sessionFixation()
.migrateSession()
.invalidSessionUrl("/login_page")
.maximumSessions(3)
.expiredUrl("/login_page?logout");
}
}
下面是我的網路應用程式的影像。


uj5u.com熱心網友回復:
您可能想要研究的兩個概念是:
- 預身份驗證,通常用于在應用程式之前執行身份驗證的網關后面的情況(請參閱 參考資料
RequestHeaderAuthenticationFilter) - 在
ADMIN需要模擬 a 的情況下切換用戶USER(請參閱SwitchUserFilter)
這兩者都需要仔細考慮和正確使用,以免意外地讓您完全繞過身份驗證。如果您只是在開發環境中執行此操作,則通過添加 aRequestHeaderAuthenticationFilter來啟用預身份驗證可能對您有用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/364321.html
上一篇:授權服務器上的會話扮演什么角色?
