HttpClient 5 සමඟ RestTemplate ප්රොක්සි අක්තපත්ර සීමා කරන්න
Spring 6 RestTemplate වෙත ප්රවාහනය ලබා දීමට පෙර Apache HttpClient 5 අක්තපත්ර ප්රොක්සි සත්කාරකයට සහ තොටුපළට සීමා කරන්න.
ප්රොක්සි පිවිසීම ප්රවාහනයේ අක්තපත්ර සපයන්නාට අයත් වේ. Spring 6 සහ Apache HttpClient 5 සමඟ, එම ගිණුම මැදිහත්කරුට සීමා කරන්න:
var proxy = new org.apache.hc.core5.http.HttpHost(
"http", "proxy.example", 8080);
var credentials = new org.apache.hc.client5.http.impl.auth
.BasicCredentialsProvider();
credentials.setCredentials(
new org.apache.hc.client5.http.auth.AuthScope(proxy),
new org.apache.hc.client5.http.auth.UsernamePasswordCredentials(
proxyUser, proxyPassword.toCharArray()));
var http = org.apache.hc.client5.http.impl.classic.HttpClients.custom()
.setProxy(proxy)
.setDefaultCredentialsProvider(credentials)
.build();
var factory = new org.springframework.http.client
.HttpComponentsClientHttpRequestFactory(http);
var rest = new org.springframework.web.client.RestTemplate(factory);යෙදුම proxyUser සහ proxyPassword අගයන් සපයන අතර HTTP සේවාදායකයේ ජීවන චක්රය හිමිකර ගනී. ඇමතුම් ස්ථානයේ තවත් පෙරනිමි අච්චුවක් තැනීම වෙනුවට වැඩ භාරය සඳහා rest නැවත භාවිත කරන්න.
AuthScope මෙම අක්තපත්ර වලංගු වන ස්ථාන සීමා කරයි. උදාහරණය සාමාන්ය පරිශීලක නාමය/මුරපද අක්තපත්ර සපයයි; BasicCredentialsProvider නාමය සෑම අභියෝගයක්ම HTTP Basic ක්රමය භාවිත කිරීමට බල නොකරයි.
HTTPS ගමනාන්තයක් සමඟ, යෙදුමේ සංකේතිත HTTP ඉල්ලීම පවතින පෙර, CONNECT අතරතුර ප්රොක්සි අභියෝගයට ප්රවාහනය පිළිතුරු දිය හැක. Proxy-Authorization එකතු කරන සාමාන්ය ගමනාන්ත අන්තර්ඡේදකය එම සාකච්ඡාවට සමාන නොවේ.
ඕනෑම ගමනාන්ත ගිණුමක් වෙන වෙනම වින්යාස කරන්න. ප්රොක්සිය තවමත් ඉල්ලීම ප්රතික්ෂේප කරන්නේ නම්, එය ප්රකාශ කරන සත්යාපන ක්රමය සහ සැබෑ සත්කාරකය සහ තොටුපළ රඳවා ගන්න. වෙනත් අන්ත ලක්ෂ්යයකට සීමා කළ අක්තපත්ර මුරපදය නිවැරදි නිසා පමණක් නොගැළපේ.