Skip to content

Commit

Permalink
migrating components to vraptor4
Browse files Browse the repository at this point in the history
  • Loading branch information
csokol committed Aug 14, 2013
1 parent 892ed77 commit c0a5711
Show file tree
Hide file tree
Showing 118 changed files with 926 additions and 622 deletions.
Binary file added jetty/cdiagent.jar
Binary file not shown.
6 changes: 6 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,12 @@
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.jboss.weld.servlet</groupId>
<artifactId>weld-servlet</artifactId>
<version>2.0.2.Final</version>
</dependency>


<!-- VRaptor plugins -->
<dependency>
Expand Down
13 changes: 10 additions & 3 deletions src/main/java/br/com/caelum/brutal/ads/BrutalAds.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,27 @@

import java.util.Random;

import javax.inject.Inject;

import br.com.caelum.brutal.model.LoggedUser;
import br.com.caelum.brutal.model.User;

@Component
public class BrutalAds {

private final LoggedUser loggedUser;
private LoggedUser loggedUser;

@Deprecated
public BrutalAds() {
}

@Inject
public BrutalAds(LoggedUser loggedUser) {
this.loggedUser = loggedUser;
}

public boolean shouldShowAds() {
if(!loggedUser.isLoggedIn()) return true;
if (!loggedUser.isLoggedIn())
return true;
User current = loggedUser.getCurrent();
if(current.getKarma() <= 50) return true;
if(current.getKarma() <= 1000) return shouldShowWithPercentage(50);
Expand Down
29 changes: 20 additions & 9 deletions src/main/java/br/com/caelum/brutal/auth/Access.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,25 +4,32 @@
import java.util.List;

import javax.annotation.PostConstruct;
import javax.annotation.Priority;
import javax.enterprise.inject.Alternative;
import javax.enterprise.inject.Produces;
import javax.inject.Inject;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import sun.awt.ComponentFactory;
import br.com.caelum.brutal.dao.UserDAO;
import br.com.caelum.brutal.dto.UserAndSession;
import br.com.caelum.brutal.model.User;
import br.com.caelum.brutal.model.UserSession;

@Component
public class Access implements ComponentFactory<User> {
public class Access {

public static final String BRUTAL_SESSION = "brutal_session";
private UserAndSession userAndSession;
private final HttpServletResponse response;
private final HttpServletRequest request;
private final UserDAO users;
private HttpServletResponse response;
private HttpServletRequest request;
private UserDAO users;

@Deprecated
public Access() {
}

@Inject
public Access(HttpServletResponse response, HttpServletRequest request, UserDAO users) {
this.response = response;
this.request = request;
Expand All @@ -43,13 +50,12 @@ public User login(User user) {
return user;
}

@Override
@Produces
public User getInstance() {
User user = userAndSession == null ? null : userAndSession.getUser();
return user;
}

@PostConstruct
public boolean tryToAutoLogin() {
String key = extractKeyFromCookies();
if (key != null) {
Expand All @@ -58,6 +64,11 @@ public boolean tryToAutoLogin() {
return this.userAndSession != null;
}

@PostConstruct
public void initialize() {
tryToAutoLogin();
}

private String extractKeyFromCookies() {
Cookie[] cookiesArray = request.getCookies();
if (cookiesArray != null) {
Expand All @@ -81,4 +92,4 @@ public void logout() {
}


}
}
Original file line number Diff line number Diff line change
@@ -1,19 +1,14 @@
package br.com.caelum.brutal.auth;

import javax.inject.Inject;

import br.com.caelum.brutal.dao.UserDAO;
import br.com.caelum.brutal.model.User;

@Component
@RequestScoped
public class DefaultAuthenticator {

private final UserDAO users;
private final Access system;

public DefaultAuthenticator(UserDAO users, Access system) {
this.users = users;
this.system = system;
}
@Inject private UserDAO users;
@Inject private Access system;

public boolean authenticate(String email, String password) {
User retrieved = users.findByMailAndPassword(email, password);
Expand Down
10 changes: 4 additions & 6 deletions src/main/java/br/com/caelum/brutal/auth/FacebookAuthService.java
Original file line number Diff line number Diff line change
@@ -1,22 +1,20 @@
package br.com.caelum.brutal.auth;

import javax.inject.Inject;

import org.scribe.model.Token;
import org.scribe.model.Verifier;
import org.scribe.oauth.OAuthService;

import com.google.gson.JsonObject;

@Component
public class FacebookAuthService {

private static final Token EMPTY_TOKEN = null;
private final OAuthService service;

@Inject private OAuthService service;
private Token accessToken;

public FacebookAuthService(OAuthService service) {
this.service = service;
}

public String getOauthUrl(String state) {
String url = service.getAuthorizationUrl(EMPTY_TOKEN) + "&scope=email,user_location";
if (state == null) {
Expand Down
13 changes: 8 additions & 5 deletions src/main/java/br/com/caelum/brutal/auth/OAuthServiceCreator.java
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
package br.com.caelum.brutal.auth;

import javax.annotation.PostConstruct;
import javax.enterprise.inject.Produces;
import javax.inject.Inject;

import org.scribe.builder.ServiceBuilder;
import org.scribe.builder.api.FacebookApi;
import org.scribe.oauth.OAuthService;

import sun.awt.ComponentFactory;
import br.com.caelum.vraptor.environment.Environment;

@Component
public class OAuthServiceCreator implements ComponentFactory<OAuthService> {
public class OAuthServiceCreator {

public static final String FACEBOOK_APP_SECRET = "facebook.app_secret";
public static final String FACEBOOK_REDIRECT_URI = "facebook.redirect_uri";
Expand All @@ -20,7 +19,11 @@ public class OAuthServiceCreator implements ComponentFactory<OAuthService> {
private String appSecret;
private String redirectUri;
private String clientId;

@Deprecated
public OAuthServiceCreator(){}

@Inject
public OAuthServiceCreator(Environment env) {
this.clientId = env.get(FACEBOOK_CLIENT_ID);
this.redirectUri = env.get(FACEBOOK_REDIRECT_URI);
Expand All @@ -37,7 +40,7 @@ public void create() {
.build();
}

@Override
@Produces
public OAuthService getInstance() {
return service;
}
Expand Down
1 change: 0 additions & 1 deletion src/main/java/br/com/caelum/brutal/auth/SignupInfo.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;


public class SignupInfo {

private final MethodType method;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,28 +2,23 @@

import static java.util.Arrays.asList;

import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest;

import br.com.caelum.brutal.controllers.AuthController;
import br.com.caelum.brutal.factory.MessageFactory;
import br.com.caelum.brutauth.auth.handlers.RuleHandler;
import br.com.caelum.vraptor4.Result;
import br.com.caelum.vraptor4.core.Localization;
import br.com.caelum.vraptor4.view.Results;

@Component
public class LoggedHandler implements RuleHandler{
public class LoggedHandler implements RuleHandler {

private final Result result;
private final HttpServletRequest req;
private final MessageFactory messageFactory;
private final Localization localization;
@Inject private Result result;
@Inject private HttpServletRequest req;
@Inject private MessageFactory messageFactory;
@Inject private Localization localization;

public LoggedHandler(Result result, HttpServletRequest req, MessageFactory messageFactory, Localization localization) {
this.result = result;
this.req = req;
this.messageFactory = messageFactory;
this.localization = localization;
}

@Override
public void handle() {
if("application/json".equals(req.getHeader("Accept"))){
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,25 @@
import static br.com.caelum.brutal.auth.rules.Rules.isAuthor;
import static br.com.caelum.brutal.auth.rules.Rules.isModerator;

import javax.annotation.Nullable;
import javax.inject.Inject;

import br.com.caelum.brutal.auth.rules.PermissionRulesConstants;
import br.com.caelum.brutal.model.Answer;
import br.com.caelum.brutal.model.User;
import br.com.caelum.brutauth.auth.rules.CustomBrutauthRule;

@Component
public class EditAnswerRule implements CustomBrutauthRule{
private final User user;
public class EditAnswerRule implements CustomBrutauthRule {
private User user;

@Deprecated
public EditAnswerRule() {
}

public EditAnswerRule(@Nullable User user) {
@Inject
public EditAnswerRule(User user) {
this.user = user;
}

public boolean isAllowed(Answer answer) {
int karma = PermissionRulesConstants.EDIT_ANSWER;
return composedRule(isAuthor()).or(hasKarma(karma)).or(isModerator()).isAllowed(user, answer);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,14 @@
import static br.com.caelum.brutal.auth.rules.Rules.isAuthor;
import static br.com.caelum.brutal.auth.rules.Rules.isModerator;

import javax.annotation.Nullable;
import javax.inject.Inject;

import br.com.caelum.brutal.model.News;
import br.com.caelum.brutal.model.User;
import br.com.caelum.brutauth.auth.rules.CustomBrutauthRule;

@Component
public class EditNewsRule implements CustomBrutauthRule{
private final User user;

public EditNewsRule(@Nullable User user) {
this.user = user;
}
@Inject private User user;

public boolean isAllowed(News news) {
return composedRule(isModerator()).or(isAuthor()).isAllowed(user, news);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,25 @@
import static br.com.caelum.brutal.auth.rules.Rules.isAuthor;
import static br.com.caelum.brutal.auth.rules.Rules.isModerator;

import javax.annotation.Nullable;
import javax.inject.Inject;

import br.com.caelum.brutal.auth.rules.PermissionRulesConstants;
import br.com.caelum.brutal.model.Question;
import br.com.caelum.brutal.model.User;
import br.com.caelum.brutauth.auth.rules.CustomBrutauthRule;

@Component
public class EditQuestionRule implements CustomBrutauthRule{
private final User user;

public EditQuestionRule(@Nullable User user) {
private User user;

@Deprecated
public EditQuestionRule() {
}

@Inject
public EditQuestionRule(User user) {
this.user = user;
}

public boolean isAllowed(Question question) {
int karma = PermissionRulesConstants.EDIT_QUESTION;
return composedRule(isAuthor()).or(hasKarma(karma)).or(isModerator()).isAllowed(user, question);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,16 @@
package br.com.caelum.brutal.brutauth.auth.rules;

import javax.inject.Inject;

import br.com.caelum.brutal.brutauth.auth.handlers.LoggedHandler;
import br.com.caelum.brutal.model.LoggedUser;
import br.com.caelum.brutauth.auth.annotations.HandledBy;
import br.com.caelum.brutauth.auth.rules.CustomBrutauthRule;

@Component
@HandledBy(LoggedHandler.class)
public class LoggedRule implements CustomBrutauthRule {

private LoggedUser loggedUser;

public LoggedRule(LoggedUser loggedUser) {
this.loggedUser = loggedUser;
}
@Inject private LoggedUser loggedUser;

public boolean isAllowed() {
return loggedUser.isLoggedIn();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,15 @@

import static br.com.caelum.brutal.auth.rules.Rules.isModerator;

import javax.annotation.Nullable;
import javax.inject.Inject;

import br.com.caelum.brutal.model.User;
import br.com.caelum.brutauth.auth.rules.CustomBrutauthRule;

@Component
public class ModeratorOnlyRule implements CustomBrutauthRule{

private final User user;
@Inject private User user;

public ModeratorOnlyRule(@Nullable User user) {
this.user = user;
}

public boolean isAllowed(){
return isModerator().isAllowed(user, null);
Expand Down
Loading

0 comments on commit c0a5711

Please sign in to comment.