ApplicationContext.xml defines herokuServiceConfig and herokuServiceProvider Bean
<bean id="herokuServiceConfig" class="com.example.oauth.OAuthServiceConfig"> <constructor-arg value="xxx" /> <constructor-arg value="xxx"/> <constructor-arg value="https://www.example.com/oauth/heroku"/> <constructor-arg value="com.example.oauth.HerokuOauthApi"/> </bean> <bean id="herokuServiceProvider" class="com.example.oauth.OAuthServiceProvider"> <constructor-arg name="config" ref="herokuServiceConfig" /> </bean>
Spring MVC Heroku OAuth Controller
package com.example.oauth.controller; import static org.springframework.web.context.request.RequestAttributes.SCOPE_SESSION; import java.util.Map; import javax.servlet.http.HttpSession; import org.scribe.model.Token; import org.scribe.model.Verifier; import org.scribe.oauth.OAuthService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Controller; 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.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import org.springframework.web.context.request.WebRequest; import com.example.oauth.OAuthServiceProvider; /** * @author tmichels */ @Controller @RequestMapping("/oauth/heroku") public class HerokuController { @Autowired @Qualifier("herokuServiceProvider") private OAuthServiceProvider herokuServiceProvider; private static final Token EMPTY_TOKEN = null; @RequestMapping(value="/login-heroku", method=RequestMethod.GET) public String loginToHeroku(Map<String, Object> map, WebRequest request) { OAuthService service = herokuServiceProvider.getService(); String authUrl = service.getAuthorizationUrl(EMPTY_TOKEN); System.out.println("RequestToken: " + authUrl ); return "redirect:" + authUrl; } @RequestMapping(value={""}, method = RequestMethod.GET) public String callback(@RequestParam(value="oauth_token", required=false) String oauthToken, @RequestParam(value="code", required=false) String oauthVerifier, WebRequest request, Map<String, Object> map) { OAuthService service = herokuServiceProvider.getService(); // getting access token Verifier verifier = new Verifier(oauthVerifier); Token accessToken = service.getAccessToken(EMPTY_TOKEN, verifier); // store access token as a session attribute request.setAttribute("oauthAccessToken", accessToken, SCOPE_SESSION); ServletRequestAttributes attr = (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes(); HttpSession session = attr.getRequest().getSession(false); //create a new session session.setAttribute("accessToken",accessToken); return "settings"; } }
HerokuOauthApi extends DefaultApi20
package com.example.oauth; import org.scribe.builder.api.DefaultApi20; import org.scribe.extractors.AccessTokenExtractor; import org.scribe.extractors.JsonTokenExtractor; import org.scribe.model.OAuthConfig; import org.scribe.model.Verb; public class HerokuOauthApi extends DefaultApi20{ private static final String ACCESSTOKEN = "https://id.heroku.com/oauth/token"; @Override public String getAccessTokenEndpoint() { return ACCESSTOKEN; } @Override public String getAuthorizationUrl(OAuthConfig config) { return String.format("https://id.heroku.com/oauth/authorize?client_id=%s&response_type=code&scope=global", config.getApiKey()); } @Override public Verb getAccessTokenVerb(){ return Verb.POST; } @Override public AccessTokenExtractor getAccessTokenExtractor() { return new JsonTokenExtractor(); } }
Nicholas Allegra is absolutely not the first i – OS hacker retained by Apple.
That being said let’s take a look at the types of prevalent programs that can cause harm to your computer:.
However, if you are concerned about complete security and need help regarding virus
attacks then it is advisable to seek help from an expert in this matter.