Довольно старый вопрос здесь, но если у кого-то есть мозговой блок, как я только что сделал, и наткнулся на это, надеюсь, это поможет.
Я тоже искал двунаправленную HashMap, иногда это является самым простым из наиболее полезных ответов.
Если вы не хотите изобретать колесо и предпочитаете не добавлять в проект другие библиотеки или проекты, как насчет простой реализации параллельных массивов (или ArrayLists, если ваш проект требует этого).
SomeType[] keys1 = new SomeType[NUM_PAIRS];
OtherType[] keys2 = new OtherType[NUM_PAIRS];
Как только вы знаете индекс 1 из двух ключей, вы можете легко запросить другой. Таким образом, ваши методы поиска выглядят примерно так:
SomeType getKey1(OtherType ot);
SomeType getKey1ByIndex(int key2Idx);
OtherType getKey2(SomeType st);
OtherType getKey2ByIndex(int key2Idx);
Предполагается, что вы используете подходящие объектно-ориентированные структуры, где только методы модифицируют эти массивы / ArrayLists, было бы очень просто поддерживать их параллель. Еще проще для ArrayList, так как вам не придется перестраивать, если размер массивов изменяется, если вы добавляете / удаляете в тандеме.
Безопасность по умолчанию в Spring Boot - Basic. Вы можете отключить его, установив security.basic.enabled=false
. Подробнее об этом здесь и здесь .
Если кому-то все еще нужно решение, поместите в контроллер REST метод, подобный следующему:
@RestController
public class myRestController{
@GetMapping("/login")
public String redirectTo(){
return "yourRedirectLink";
}
}
Это решение очень хорошо для работы с пружиной и реакции, упакованной в банку
Чтобы полностью отключить маршрут входа в систему, используйте объект конфигурации Spring Security
В следующем фрагменте кода используется org.springframework.boot:2.1.6.RELEASE
@Configuration
@EnableWebSecurity
class SecurityConfig : WebSecurityConfigurerAdapter() {
override fun configure(security: HttpSecurity) {
super.configure(security)
security.httpBasic().disable()
security.cors().and().csrf().disable().authorizeRequests()
.anyRequest().authenticated()
.and().formLogin().disable() // <-- this will disable the login route
.addFilter(JWTAuthorizationFilter(authenticationManager()))
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
}
@Bean
fun corsConfigurationSource(): CorsConfigurationSource {
val source = UrlBasedCorsConfigurationSource()
val config = CorsConfiguration().applyPermitDefaultValues()
config.addExposedHeader("Authorization")
source.registerCorsConfiguration("/**", config)
return source
}
}